Comment détecter un appareil mobile avec JavaScript?
J'ai été invité à créer une réelle page HTML /JavaScript pour simuler la détection des périphériques mobiles (iPhone /iPad /Android) à l'aide de code JavaScript. Ce sera ensuite prendre l'utilisateur pour un autre écran qui vous demande de leur adresse e-mail.
- si u peut connaître les dimensions de l'écran de cette façon, u peuvent se différencier entre un iphone et un ipad
- Utiliser pouvez utiliser le code : stackoverflow.com/questions/11381673/...
Vous devez vous connecter pour publier un commentaire.
Je sais que cette réponse est venue 3 ans de retard mais aucun d'autres réponses sont en effet 100% de réponses correctes. Si vous souhaitez détecter si l'utilisateur est sur TOUT type d'appareil mobile (Android, iOS, BlackBerry, Windows Phone, Kindle, etc.), ensuite, vous pouvez utiliser le code suivant:
Vous permettrait de détecter le requérant navigateurs chaîne de l'agent utilisateur, et ensuite décider en fonction de ce qu'elle est si elle est à venir à partir d'un navigateur mobile ou pas. Cet appareil n'est pas parfait et ne le sera jamais en raison du fait que les agents utilisateurs ne sont pas normalisés pour les appareils mobiles (au moins pas à ma connaissance).
Ce site va vous aider à créer le code: http://www.hand-interactive.com/resources/detect-mobile-javascript.htm
Exemple:
Vous pourriez obtenir de l'agent utilisateur en javascript en faisant ceci:
Et ensuite faire le chèque est dans le même format que ce (juste en utilisant l'iPhone comme un exemple rapide, mais d'autres devraient être un peu différent)
Modifier
Vous pouvez ainsi créer une simple page HTML comme ceci:
Une jolie solution simple est de vérifier pour la largeur de l'écran. Depuis presque tous les appareils mobiles ont un max largeur de l'écran de 480px (à l'heure actuelle), c'est assez fiable:
La chaîne de l'agent utilisateur est également un endroit à regarder. Cependant, la première solution est encore mieux car même si certains flipper périphérique ne répond pas correctement pour que le user-agent, la largeur de l'écran ne ment pas.
La seule exception ici sont tablette comme l'ipad. Ces appareils ont une plus grande largeur de l'écran de smartphones et je serais probablement aller avec le user-agent-string pour ceux.
Une solution simple pourrait être de css uniquement. Vous pouvez définir les styles dans votre feuille de style, puis réglez-les sur le fond de celui-ci. Les smartphones modernes agir comme ils sont juste 480px de large, alors qu'ils sont en réalité beaucoup plus. Le code pour détecter un écran de petite taille dans le css est
Espérons que cette aide!
Puisqu'il est maintenant en 2015, si vous avez trébuché à travers cette question, alors vous devriez probablement utiliser des de la fenêtre.matchMedia (et, si elle est encore en 2015, polyfills destinés à la prise pour les anciens navigateurs):
- Je utiliser
mobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent)
J'ai donc fait cela. Merci à vous tous!
Vous pouvez utiliser la chaîne de l'agent utilisateur pour détecter cette.
Vous pouvez trouver une liste des useragent cordes ici http://www.useragentstring.com/pages/useragentstring.php
Je vous conseille de vérifier http://wurfl.io/
En un mot, si vous importez un petit fichier JS:
vous serez à gauche avec un objet JSON qui ressemble à:
(c'est en supposant que vous utilisez une Nexus 7, bien sûr) et vous serez en mesure de faire des choses comme:
C'est ce que vous cherchez.
Disclaimer: je travaille pour la société qui propose ce service gratuitement. Merci.
Ceci est un exemple de la façon de vérifier si la page web est chargée dans le Bureau ou une application mobile.
JS va exécuter au chargement de la page et vous pouvez le faire Desktop choses spécifiques au chargement de la page par exemple cacher scanner de code à barres.
Déterminer ce que l'Utilisateur Agent pour les périphériques que vous avez besoin de simuler et de tester ensuite une variable contre.
par exemple:
!!~userAgent.indexOf('iphone') // >> true|false
C'est ma version, tout à fait analogue à la supérieure, mais je pense bon pour référence.
Dispositif de détection basé sur l'agent utilisateur n'est pas très bonne solution, le mieux est de détecter des fonctionnalités comme le toucher de l'appareil (dans les nouveaux jQuery ils enlèvent
$.browser
et l'utilisation$.support
à la place).Pour détecter mobile, vous pouvez vérifier les événements tactiles:
Prises de Quel est le meilleur moyen de détecter un écran tactile de l'appareil " à l'aide de JavaScript?
Simplement utiliser DeviceDetection
Une autre possibilité est d'utiliser mobile-detect.js. Essayez le démo.
L'utilisation du navigateur:
Node.js /Express:
Exemple:
Comme je l' (sorte de sans succès) recherche de la bonne solution pour mon hack, j'ai envie d'ajouter mon hack ici néanmoins: j'ai simplement vérifier leur prise en charge de l'orientation de l'écran, qui semble la plus importante différence entre les mobiles et de bureau:
var is_handheld=0; //juste un mondial
si(fenêtre.DeviceOrientationEvent) {is_handheld=1;}
Cela étant dit, à mon humble avis, une page devrait également manuel offre le choix entre mobile /aménagement de bureau. Je suis en 1920*1080 et je peux faire un zoom - une trop simplifiée et réduite wordpressoid morceau n'est pas toujours une bonne chose. Surtout forcer une mise en page basée sur chômé dispositif de détection - il arrive tout le temps.
De test pour l'agent utilisateur est complexe, illisible et invariablement échoue.
Je n'ai pas trouver que les médias match pour "ordinateur de poche" a fonctionné pour moi. La solution la plus simple était de détecter si la souris était disponible. Et qui peut être fait comme ceci:
Qui vous dira si vous avez besoin de montrer placez les articles ou pas et tout ce qui nécessite un physique pointeur. Le dimensionnement peut alors être effectuée sur d'autres requêtes de média en fonction de la largeur.
Suivantes petite bibliothèque est une ceinture accolades version de la requête ci-dessus, devrait couvrir la plupart des "êtes-vous d'une tablette ou d'un téléphone sans souris" des scénarios.
https://patrickhlauke.github.io/touch/touchscreen-detection/
Médias matches ont été pris en charge depuis 2015 et vous pouvez vérifier la compatibilité ici:
https://caniuse.com/#search=matchMedia
En bref, vous devez maintenir des variables quant à savoir si l'écran est un écran tactile et aussi de ce que la taille de l'écran. En théorie, je pourrais avoir un petit écran sur une souris exploité bureau.
Similaires à plusieurs des réponses ci-dessus. Cette fonction simple, fonctionne très bien pour moi. Il est en cours de 2019