Détecter les appareils mobiles et les tablettes

je suis actuellement à la recherche d'un code pour la détection PHP Des mobiles, ce qui est probablement assez facile.

maintenant j'ai juste un problème - je veux rendre possible de faire des vues uniques-les dossiers dans mon MVC-cadre pour les tablettes, les mobiles et les pages web. Je dois donc séparer la tablette du reste des appareils mobiles.

Actuellement, c'est le code que j'utilise:

public function isMobile()
{   
    if(preg_match('/(alcatel|amoi|android|avantgo|blackberry|benq|cell|cricket|docomo|elaine|htc|iemobile|iphone|ipad|ipaq|ipod|j2me|java|midp|mini|mmp|mobi|motorola|nec-|nokia|palm|panasonic|philips|phone|sagem|sharp|sie-|smartphone|sony|symbian|t-mobile|telus|up.browser|up.link|vodafone|wap|webos|wireless|xda|xoom|zte)/i', $_SERVER['HTTP_USER_AGENT']))
    return true;
else
    return false;
}

mais ce n'est pas suffisant - la seule vérification est de savoir si l'appareil est mobile dispositif-si ce n'est pas comme la norme dire le cadre, que nous sommes sur un ordinateur. La dernière partie est ok - mais je veux faire une Division des appareils mobiles dans les mobiles réels - et dans un groupe secound, qui devrait être des tablettes.

j'espère que j'ai fait de mon souhait clair, et j'espère, que vous avez une entrée dans un bon moyen d'y parvenir.

Merci d'avance.

22
demandé sur Ilmari Karonen 2012-04-02 23:52:42

4 réponses

Voici une classe avec des méthodes pour détecter chaque plate-forme individuellement.

33
répondu Joe 2017-07-30 00:59:04

vieille question, Mais voici mon opinion sur la détection mobile.

vous déclarez dans votre question que vous voulez des fichiers uniques pour les appareils mobiles, donc je peux supposer que la raison pour cela est de présenter une version différente du site web pour les clients mobiles et les clients de bureau.

cette approche est correcte jusqu'à un certain point. Et ce point s'appelle Androïde. Il y a ~ 1,5 million appareils Android activés chaque jour avec des résolutions de 320*240 à 2560*1600, ce qui rend difficile de if {} else pour chacun d'eux. Même si vous essayez de faire une liste avec la plupart des appareils d'occasion et que vous essayez de cibler uniquement celles-ci, il sera difficile de soutenir un nouveau périphérique à l'avenir.

mon approche il y a quelque temps était d'oublier l'ancienne méthode de diviser les appareils en catégories "mobile" et "bureau" et de créer une nouvelle méthode. Et cette méthode consiste en" bon " et "mauvais" navigateurs qui est basé sur les capacités du navigateur. Par exemple, si le navigateur prend en charge de stockage, il sera dans la "bonne" catégorie.

A partir de cela, j'ai eu la possibilité de créer une version "de base" du site web, très basique du point de vue de L'interface utilisateur, mais qui fonctionnera à travers le navigateur. Cette version de base du site web présentera le même contenu (parce que les questions à la fin de la journée) sur tous les appareils, sera de très petite taille (moins d'actifs, plus petites html) et basé sur les fonctionnalités du navigateur sera enrichi sur le client côté.

donc à la fin vous finirez avec un site web qui a une très petite empreinte (html de la taille et des actifs), qui semble OK cross browser et il prendra en charge tout nouvel appareil qui apparaît sur le marché sans aucun changement, se chargera rapidement, même sur les connexions pauvres et qui peut être enrichi du côté du client en fonction des capacités du navigateur.

Vous pouvez même enrichir la page Web en fonction de la taille des appareils: si le navigateur déclare un grand écran, vous pouvez apporter plus actifs, plus d'annonces et de rendre la page Web plus belle ; si les rapports de navigateur est sur un petit écran, vous laissez comme tel.

8
répondu Alexandru Guzinschi 2014-02-18 10:10:39

Mobile_Detect est une classe PHP légère pour la détection des appareils mobiles (y compris les tablettes). Il utilise la chaîne User-Agent combinée avec des en-têtes HTTP spécifiques pour détecter l'environnement mobile. - Lire la suite http://mobiledetect.net

5
répondu jacksonfdam 2013-06-10 11:18:05

vous pouvez également utiliser une solution plus complète comme WURFL Cloud, qui est un service qui détecte les capacités des appareils mobiles, comme is_mobile et is_tablet. Il existe un plan gratuit pour les sites à faible trafic:http://www.scientiamobile.com/cloud

0
répondu SteveK 2012-04-07 17:34:26