Se vi serve un sistema semplice e veloce per rilevare il dispositivo dell’utente, Mobile Detect fa senz’altro al caso vostro.
Si tratta di una classe php piuttosto leggera che legge e interpreta gli header http in modo da stabilire quale tipo di device stia usando l’utente. La sua semplicità d’uso e la sua accuratezza l’hanno resa un’ottima classe da utilizzare in progetti di tutto rispetto.
Per prima cosa scaricatevi lo zip al seguente indirizzo.
Quando lo scompattate, vi ritrovate diversi file a disposizione, ma l’unico che vi occorre davvero è “Mobile_Detect.php”: la classe è contenuta in questo file.
Se avete qualche dimestichezza e aprite il file, vi accorgerete che si tratta di una classe abbastanza semplice da leggere. Naturalmente è in continua evoluzione, visto che tiene traccia dei device possibili sul mercato, per cui andrebbe aggiornata sempre all’ultima versione.
Vediamo il suo utilizzo, descritto tra l’altro anche nell’esempio ufficiale.
Importate il file e istanziate la classe in un oggetto, come nell’esempio presente:
1 2 |
include 'Mobile_Detect.php'; $detect = new Mobile_Detect(); |
A questo punto i metodi da richiamare nella vostra pagina, al punto dove vi occorre, sono i seguenti:
1 2 |
$detect->isMobile(); //ritorna true se il dispositivo corrente è mobile $detect->isTablet(); //ritorna true se il dispositivo corrente è un tablet |
Per correttezza di informazione, per quanto ho potuto adoperarla (al momento solo per un paio di siti), la classe funziona in gran parte dei casi, ma non sempre: ho avuto delle problematiche in alcuni browser safari che non sono riuscito a risolvere, ovvero non li vedeva come dispositivi associati al mobile; e questo soltanto in alcuni dispositivi. Si tratta evidentemente di problematiche legate all’hardware o a qualche impostazione.
Generalmente, comunque, la classe sembra compiere il suo dovere senza problemi.
Ciao Manuel, è un po’ di giorni che cerco di usare il Mobile Detect ma non riesco: quando vado sul dispositivo mobile mi dice pagina non trovata. Innanzitutto vorrei sapere dove hai inserito il file Mobile_Detect.php (io l’ho messo nella directory principale del tema), e poi se è possibile utilizzarlo con un tema responsive, visto che uso quello per il mio sito.
Il codice che ho usato è questo (solo nel single.php perché m’interessa soltanto di differenziare i post da PC e da mobile, per inserire banner diversi di Adsense, visto che per cellulari non posso utilizzare il formato 300×250 above the fold):
include ‘Mobile_Detect.php’;
$detect = new Mobile_Detect();
if ($detect->isMobile()) {
header(‘Location: /single-mobile.php’);
exit(0);
}
Ovviamente ho creato un single-mobile.php, che tra l’altro sarebbe identico al single.php, ho cambiato solo lo script di Adsense. Secondo te in cosa sbaglio? Grazie anticipatamente per la risposta. Christine
Ciao Christine,
ti ho unito i due commenti in uno solo, per chiarezza 🙂
Non vedo niente di sbagliato nel tuo procedimento. Il file Mobile_detect.php puoi inserirlo dove vuoi nel sito, l’importante è che l’include vada a prenderlo correttamente; e per quanto riguarda il responsive non c’è problema, perché qua stiamo agendo soltanto a livello di PHP.
Fai queste prove:
– elimina l’header Location e stampa a video una stringa qualsiasi (in questo modo vedi se effettivamente entra nell’if da mobile)
– non ho ben capito che errore ti dà con il mobile: è una pagina bianca? Prova a controllare se nel single-mobile.php c’è qualche codice che dà fastidio all’esecuzione (eventualmente stampa gli errori con error_reporting)