Sono il fondatore e il manutentore del progetto MobileESP, una libreria multipiattaforma open source gratuita per il rilevamento di dispositivi mobili. È ancora molto vivo! :-)
www.mobileesp.org
MobileESP solo dà binario "è mobile" risposte. È possibile rilevare per piattaforma come iOS, Android o Windows Phone o per categoria di dispositivi, come smartphone "iPhone Tier" o tablet. Assicurati di fare una rapida revisione della pagina API.
Come forse sapete, le stringhe useragent variano notevolmente. Se il browser viene spedito sul dispositivo, il produttore può personalizzarlo. Ad esempio, HTC spesso personalizza la stringa useragent del browser Android nativo.
Google fornisce consigli su come l'OEM deve personalizzare l'utente.Se il dispositivo deve essere considerato un telefono, Google consiglia di includere la parola elemento "mobile" nella stringa. Ma se il dispositivo deve essere considerato un tablet, la stringa deve essere non contenere "mobile". L'aderenza a questa raccomandazione varia ampiamente, ovviamente.
I browser di terze parti come Opera o Maxthon possono mettere tutto ciò che vogliono nella stringa useragent - e lo fanno! Alcuni "nuovi" browser che restano senza nome hanno svolto pochissimi lavori di inserimento delle informazioni corrette nelle stringhe useragent di ciascuna piattaforma (ad esempio, versioni Android e iOS). Non c'è molto che puoi fare a meno di ottenere molto traffico da questi browser e desideri investire nel tenere traccia dei loro esatti valori utente per piattaforma e rev. Software.
In ogni caso, MobileESP è stato creato con la visione di eseguire il rilevamento su base pagina per pagina quando viene pubblicata la pagina. Ho intenzionalmente scritto il codice per essere molto facile da leggere e personalizzare.
Per fare l'elaborazione in batch, si potrebbe fare qualcosa di simile:
1.) Nel costruttore, commentare il metodo initDeviceScan(). Non ti servirà per l'elaborazione di massa.
2.) Passare l'oggetto UserAgent e una stringa vuota nel costruttore (UAgentInfo()).
3.) Quindi esegui tutti i metodi di rilevamento a cui sei interessato. Sii attento all'ordine in cui li fai per risparmiare tempo, basato su una scansione dei tuoi utenti.
Ad esempio, se la maggior parte degli utenti è su iPhone e questo è uno dei criteri di rilevamento a cui sei interessato, esegui prima il controllo. Se questo esempio, sicuramente non avresti eseguito prima il metodo BlackBerry!
Le mie informazioni di contatto sono nel codice sorgente e sul sito web. Mandatemi una nota se avete domande o vi imbattete in qualche bug. Sicuramente guardarsi intorno al sito Web MobileESP.org per alcuni suggerimenti.
I migliori auguri per il tuo progetto, Aniket!
_ Ad esempio, app Android scarsamente standardizzate possono inviare la stringa UA "Android"._ Non penso che otterrai alcuna libreria che funzioni per user-agent non standard, come impostato dai browser personalizzati. Se sono stringhe personalizzate, sicuramente le possibilità sono infinite? – anotherdave
Mentre è vero che nessuna libreria funziona per tutte le stringhe arbitrarie, "Android" è ancora un frammento di utente-interprete riconosciuto. In effetti le librerie citate nella domanda lo riconoscono come un frammento del sistema operativo; Ad esempio, WURFL segnala che indica un dispositivo mobile. Alcune stringhe di user agent non standard, come "-", non mi aspetterei di ottenere alcuna informazione, ma molte contengono solo informazioni * incomplete *. –
Suppongo che dipenda da cosa hai bisogno/vuoi contare come "mobile". Il sito Lite Device Detection a cui ti sei collegato, ad esempio, conta una stringa UA di 'Android' per essere 'mobile'/'touch' ma non un 'tablet', mentre un'app non standard potrebbe inviare questa stringa UA in una versione tablet facilmente come tramite un telefono. Personalmente, penso che se la tua preoccupazione principale è l'analisi, non mi preoccuperei troppo delle stringhe non standard - stai davvero vedendo un numero abbastanza grande di "SCONOSCIUTI" per influenzare le tue statistiche? – anotherdave