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: https://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(https://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!

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:

  • 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 ...

  • 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 ...

  • 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

Trackback e pingback

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