Minggu, 18 April 2010

Detect Mobile Browser

Perkembangan Perangkat Mobile untuk bisa mengakses internet dan melakukan browsing kini telah menjadi trend dan mungkin akan beranjak menjadi kebutuhan. Seperti facebook.com yang menyediakan versi mobile di alamat http://m.facebook.com/ atau detik.com di http://m.detik.com sebagai versi mobile-nya.


Tentunya terdapat perbedaan content dan penyesuaikan design antara versi yang mobile dan desktop, karena pada versi mobile dimensi layarnya kecil jadi perlu disesuaikan.

Seperti pada detik.com atau facebook.com ketika user mengakses website mereka melalui mobil phone secara otomatis server melakukan redirect ke versi mobile, Hal itu terjadi karena server melakukan deteksi perangkat yang digunakan oleh user.

pada PHP untuk deteksi perangkat yang digunakan user dapat menggunakan variabel server HTTP_USER_AGENT, variabel PHP tersebut akan menghasilkan information seperti Browser dan Operation System yang digunakan oleh pengunjung.

echo $_SERVER['HTTP_USER_AGENT'];

Berikut ini adalah beberapa hasilnya

Web diakses dari Handphone Nokia 5300

Nokia5300/2.0(05.51)Profile/MDIP-2.0Configuration/CLDC-1.1


Web diakses dari Opera Mobile di OS Windows Mobile

Opera/9.5(Microsoft Windows;PPC;Opera Mobi/16277;U;en-GB)

Web diakses dari Firefox di OS Ubuntu

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.9) Gecko/20100401 Ubuntu/9.10 (karmic) Firefox/3.5.9

Dari hasil diatas terlihat perbedaan informasi yang didapat, dari perbedaan itulah bisa ditangkap antar pengunjung yang berasal dari perangkat mobile dan desktop.

Berikut ini adalah caranya mendeteksi dari perangkat Nokia, Opera Mobile, Siemens, SonyErricsson
$user =  $_SERVER['HTTP_USER_AGENT']; 
$device = array('nokia','opera mobi','siemens','sonyericsson');

foreach($device as $val)
{
 $count = substr_count(strtolower($user),$val);
 if($count > 0)
 {
  header('location:http://m.webanda.com');
 } 
}
Cara kerja script diatas adalah bila ditemukan kata yang ada pada array $device maka akan diredirect ke http://m.webanda.com 

Untuk menambah daftar device dapat ditambahkan di elemen array $device, untuk melihat user agent dari berbagai perangkat mobile phones dapat dilihat di http://en.wikipedia.org/wiki/List_of_user_agents_for_mobile_phones

Bila malas membuat sendiri dapat menggunakan hasil karya orang lain seperti yang ada di http://detectmobilebrowsers.mobi/

7 komentar:

  1. swip tenan lagi..

    Lha kok apa yang saya cari ada disini semua...

    Semoga ndak kebetulan, karena memang ini sudah takdir..

    hehehehe...

    makasih juragan... :cendol:

    BalasHapus
  2. wah di kasih cendol ijo...
    kaskusker juga....

    thanks....

    BalasHapus
  3. kalau di blogger gimana bikinnya? kan di blogger gak diizinkan buat pake script php?

    BalasHapus
  4. di bloger belum bisa mas...
    ini di asumsikan memiliki hosting..

    BalasHapus
  5. @Dendie :

    kalau di blogger, bisa diakali pakai javascript

    di javascript ada fungsi namanya screen.width() yang mengembalikan width dari device screen yang digunakan user untuk mengakses blog kita.

    Ini bisa dijadiin kondisi, misal if(screen.width<800).
    Kan sebagian besar mobile device(hp) ga punya screen lebih luas dari 800pixel.

    Bila kondisi dipenuhi tinggal diredirect ke blogger mobile version.

    kalau blog mas Dendie misalnya

    http://dendieisme.blogspot.com?m=1 (tinggal tambah parameter m=1, dibelakang alamat blog kit)
    => masih beta

    Salam,
    Blogger-Helpers
    blogger-helpers.blogspot.com

    BalasHapus
  6. sekalian mau tanya, kalau di php

    session_start() header already sent

    itu kan biasanya gara2 ada spasi, nah kalau ga ada spasi n session_start() udah dikasi di paling atas masi error kayak gitu, itu kenapa? Yang aneh , kalau jalan di platform Linux ga error, kalau di xampp windows, ada error.

    BalasHapus
  7. mungkin setting session php di php.ini windows di set auto start. coba matikan saja auto start session-nya seperti begini cara-nya "session.auto_start=Off"

    BalasHapus