Comment détecter le toucher navigateurs de périphériques vs bureau à l'aide de javascript?
Quel est le code pour détecter les appareils tactiles (smartphones et tablettes) vs les ordinateurs de bureau des navigateurs à l'aide userAgent.match et le retour d'une variable booléenne (par exemple "isipad')?
J'ai besoin de tester cette contre Android et les appareils Apple principalement. Si le navigateur de l'appareil Android ou Apple, retour isipad = false. Sinon, retour isipad = true.
Jusqu'à présent, je suis allé à ce sujet comme ceci (pour iDevice la détection du navigateur) :
if( navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i) ||navigator.userAgent.match(/iPad/i) )
{var isipad = true;}
else
{var isipad = false;}
Il semble fonctionner, cependant j'aimerais pouvoir l'ajouter au navigateur android ainsi, dans ce cas.
Merci à l'avance.
Alex
OriginalL'auteur Alex | 2012-09-09
Vous devez vous connecter pour publier un commentaire.
plus simple code que j'ai trouvé après avoir parcouru beaucoup de choses ici et là
OriginalL'auteur Pratswinz
Vous ne devriez pas essayer de comprendre à quel type de dispositif qu'il est. Au lieu de cela, vous devez examiner les capacités de l'appareil hôte et votre code s'adapter aux capacités qu'il trouve indépendamment de ce type de dispositif est qu'il est. Cette opération est appelée "fonction de détection" et est considéré comme une bien meilleure façon de faire les choses que de les détecter un navigateur ou l'appareil.
Par exemple, lorsque les tablettes Windows 8 en sortir, il y aura des dispositifs à la fois la souris et le toucher.
Il y a beaucoup écrit sur la façon de détecter les capacités tactiles. Voir ces idées:
http://alastairc.ac/2010/03/detecting-touch-based-browsing/
Optimiser le site web pour les appareils tactiles
https://stackoverflow.com/a/4819886/816620
Ce que sur un ordinateur de bureau avec le tactile, la souris et les capacités? Je pense que vous aurez à nous en dire plus sur ce problème de l'interface que vous êtes vraiment essayer de résoudre. Les Chances sont qu'à l'aide de l'userAgent pour activer/désactiver le comportement tactile est un mauvais choix de conception. Si vous voulez vraiment utiliser useragent, puis de faire une recherche sur le web pour useragent chaînes et vous trouverez le géant de listes à partir de laquelle vous pouvez décider quoi faire (il y a des milliers de useragent de chaînes de caractères).
Oh non non non. Je ne suis pas en train d'activer/de désactiver tout comportement. J'utilise Articulate Storyline pour développer l'e-learning. Je suis en train d'essayer de différencier entre le toucher et de bureau pour des raisons de compatibilité. Le logiciel ne prend pas toujours la sortie des résultats cohérents lorsqu'en mode html5 (comprimés seulement) et j'ai besoin de mettre en œuvre certaines des solutions de contournement dans ces cas (encore une fois surtout à cause de certaines limitations des logiciels en ce moment).
OriginalL'auteur jfriend00
Bien que je suis d'accord avec @jfriend00 que vous devez utiliser la fonction "détection" plutôt que d'utiliser l'agent de l'utilisateur, mais il semble que l'agent utilisateur est votre seule option. J'utilise ce site web pour mobile de détection du navigateur. Ils mettent fréquemment à jour leur code basé sur de nouveaux appareils, afin de mettre à jour le vôtre à titre occasionnel. Voici le code JS:
Ici est un violon dans l'action.
OriginalL'auteur davehale23
Je l'ai testé contre detectmobilebrowsers.com avec et iPad mini et une Surface de la tablette, et deux d'entre eux retournés ”No mobile navigateur détecté”.
La pièce la plus étrange à ce sujet est que la chaîne de l'Agent Utilisateur pour iPad mini contient en fait le mot "Mobile", ce qui laisse penser qu'il ne serait pas si difficile à déterminer car un appareil mobile.
OriginalL'auteur Brian Frisch