2010-10-17 15 views
6

Pour mon site, je dois pouvoir faire la différence entre la visite d'une tablette Android et la visite d'un téléphone Android. Il doit être détecté avant que la page ne soit envoyée à l'utilisateur, donc utiliser JavaScript pour vérifier que l'écran n'est pas une option.Comment puis-je détecter différemment les téléphones Android et les tablettes Android à l'aide de l'en-tête de l'agent utilisateur?

Au moment où je l'utiliser pour détecter un appareil Android: strpos ($ ua, 'android')

est-il quelque chose Thar unique, une tablette a dans son agent utilisateur?

+1

Si vous codez votre page à l'aide de HTML sémantique et CSS, vous ne devriez pas avoir besoin de détecter le type de périphérique avant d'envoyer la page. –

Répondre

0

Extrayez le projet WURFL. Il devrait être en mesure de vous aider non seulement dans le scénario Android Phone et tablette Android, mais aussi d'autres appareils.

5

Vous pouvez utiliser PHP $ _SERVER [ « HTTP_USER_AGENT »] alors les fonctions de eregi insensibles à la casse pour rechercher ce qui suit, ce qui suppose que le développeur du navigateur a suivi les directives d'Android sur les spécifications de l'agent utilisateur:

$ua = $_SERVER['HTTP_USER_AGENT']; 
if (eregi('Android', $ua) && eregi('Mobile', $ua)) $platform = "Android Phone"; 
elseif (eregi('Android', $ua) && !eregi('Mobile', $ua)) $platform = "Android Tablet"; 

Ce n'est pas à toute épreuve mais c'est un début.

-2
if(strstr($_SERVER['HTTP_USER_AGENT'],'iPod') || strstr($_SERVER['HTTP_USER_AGENT'],'iPhone') || strstr($_SERVER['HTTP_USER_AGENT'],'iPad') || strstr($_SERVER['HTTP_USER_AGENT'],'Android')){ 
    //do something... 
} 

a marché pour moi

0

@Patrick Kershner, votre code ne fonctionne que pour la famille des produits Apple. Chaque appareil Apple envoie son propre UA, mais ce n'est pas le cas avec les appareils Android. En fait, l'auteur de ce post doit savoir si l'appareil Android est une tablette ou un téléphone sans utiliser Javascript. Le code fourni par l'utilisateur user336828 est une solution de contournement, bien qu'il ne soit pas fiable à 100%: certains périphériques clone/label blanc/basse qualité peuvent envoyer exactement la même chaîne UA à partir des tablettes et des téléphones, mais je pense que cela devrait fonctionner les appareils de la marque connue. Je viens de tester ce code sur un téléphone Android et une tablette et ça marche.

+0

Pourriez-vous rendre cette réponse plus claire? –