MobileDetect: Come rilevare i dispositivi mobili?

Negli ultimi tempi ho trattato l’argomento dei dispositivi mobili ed in particolare quello del nuovissimo framework jQuery Mobile (giunto nel frattempo alla versione beta).
Mi é stato chiesto da più parti un sistema per rilevare questi dispositivi in modo da poter reindirizzare l’utente ad una variante del sito specifica per il relativo dispositivo.

Ho iniziato dunque a lavorare su una libreria che svolgesse al meglio questo compito ed ho pure aperto un post nel nostro forum nel quale é possibile inviare nomi di user-agent di dispositivi mobili.

Oggi Your Inspiration Web rilascia la versione beta della libreria mobileDetect che potete scaricare e ridistribuire a piacimento.

Download

Funzionamento

mobileDetect rileva l’user-agent della richiesta e verifica se é contenuto nella lista dei nomi dei dispositivi mobili. Questa lista é espressa in forma di file xml ed hostata su google code. In questo modo non sarà necessario aggiornare la libreria ad ogni aggiornamento della lista.
Naturalmente questa lista non ha la pretesa di essere completa e da solo non posso fare molto. E’ per questo motivo che chiedo l’aiuto di tutta la community nel contribuire a migliorarla e correggerla. Se siete a conoscenza di ulteriori nomi di device o se ritenete che la lista contenga inesattezze, comunicatelo nell’apposita sezione sul forum.
In questi casi la collaborazione é importantissima. Ovviamente sarete inserirvi nella lista dei contributors.

Utilizzo

L’utilizzo di questa libreria é semplicissimo. Basta includerla per avere a disposizione l’oggetto $mobileDetect al quale fanno riferimento 3 proprietà ed un metodo:

  • isMobile: Contiene TRUE se l’agent é nella lista dei dispositivi mobili (FALSE se non lo é)
  • isTouch: Contiene TRUE se si tratta di un dispositivo mobile provvisto di touch screen
  • mobileName: Contiene il nome del dispositivo
  • mobileDetectInfo(): Questo metodo può essere invocato in fase di sviluppo e manda a video tutte le informazioni sulla lista dei dispositivi (tipo phpinfo() per intenderci).

Esempi

Esempio 1

include 'mobileDetect.class.php';

if($mobileDetect->isMobile)
{
    header("Location: http://www.miosito.com/mobile");
}

Esempio 2

include 'mobileDetect.class.php';

if($mobileDetect->isMobile)
{
    if($mobileDetect->isTouch)
    {
        echo 'il dispositivo ' . $mobileDetect->mobileName . ' é touch screen';
    }
    else
    {
        echo 'il dispositivo ' . $mobileDetect->mobileName . ' non é touch screen';
    }
}

Utilizzare una lista personalizzata

E’ anche possibile utilizzare una lista personalizzata. Se ad esempio volessi considerare solo alcuni dispositivi basta creare un file xml con la stessa struttura ed inserirvi solo quello che é necessario. In questo caso il file dovrà essere salvato sul proprio server ed il suo URL verrà passato come argomento del costruttore a riga 176 del file mobileDetect.class.php.

$mobileDetect = new mobileDetect(http://www.your-site.com/path-to-file);

Road map

Sto già lavorando alla prima release candidate ma anche qui chiedo l’aiuto della community in forma di suggerimenti, impressioni, segnalazioni di errori.
Una cosa che certo sarebbe interessante inserire é una nuova proprietà che contenga la risoluzione dello schermo del dispositivo (anche se sarà molto difficile).

Conclusione

Che dire ancora? Forza ragazzi, metteteci del vostro! Siamo tantissimi ed abbiamo la possibilità di realizzare un progetto veramente interessante.
Nei prossimi giorni anche YIW andrà in vacanza, quindi colgo l’occasione per augurarvi una ottima estate ed arrivederci a settembre!

Master per Web Designer Freelance
In tutti questi anni abbiamo ricevuto centinaia di richieste di approfondimento sulle numerose tematiche del web design vissuto da freelance. Le abbiamo affrontate volta per volta. Ma ci siamo resi conto che era necessario fare qualcosa di più. Ecco perché è nato One Year Together, un vero e proprio master per web designer freelance che apre finalmente le porte al mondo del lavoro.
Scopri One Year Together »
Tag:

L'autore

Maurizio è sposato con la triade PHP - MySql - Apache e, non pago, ha un'amante chiamata jQuery. Ha un blog dove cerca di descrivere nei minimi particolari sia la moglie che l'amante. La sua vera specialità è la realizzazione di gestionali complessi anche se non rifiuta mai un sito web. +

Sito web dell'autore | Altri articoli scritti da

Articoli correlati

Potresti essere interessato anche ai seguenti articoli:

  • iphone1
    Aifon – giorno 6: La Multa

    Aifon: E’ il diario di un povero diavolo (io) che ha acquistato l’iPhone4 per imparare a sviluppare le apps ed é rimasto intrappolato ...

  • aifon5
    Aifon -giorno 5: Shake me, me, me

    Aifon: E’ il diario di un povero diavolo (io) che ha acquistato l’iPhone4 per imparare a sviluppare le apps ed é rimasto intrappolato ...

  • iphone1
    Aifon -giorno 4: La bolla

    Aifon: E’ il diario di un povero diavolo (io) che ha acquistato l’iPhone4 per imparare a sviluppare le apps ed é rimasto intrappolato ...

18 commenti

  1. lxn
  2. Luca
  3. Tiziano
  4. Johnny
  5. Gabriele Delmonte
  6. Pino
  7. Matteo
  8. angelo
  9. angelo

Trackback e pingback

  1. Raccolta di articoli della settimana 17/7/2011 | Saverio Gravagnola
    [...] Come rilevare i dispositivi mobili (Your Inspiration [...]

Lascia un Commento

Current day month ye@r *