Détecter si un navigateur d'un appareil mobile (iOS/Android téléphone/tablette) est utilisé
Est-il un moyen de détecter si un ordinateur de poche est le navigateur utilisé (iOS/Android téléphone/tablette)?
J'ai essayé cela avec l'objectif d'en faire un élément de la moitié de sa largeur dans un navigateur sur un ordinateur de poche de l'appareil, mais il ne fait pas de différence.
width: 600px;
@media handheld { width: 300px; }
Peut-il être fait et si oui, comment?
edit: à Partir de la page désignée dans jmaes réponse j'ai utilisé
@media only screen and (max-device-width: 480px)
.
- L'objectif est de détecter les appareils mobiles, ou avez-vous besoin pour être en mesure de distinguer entre les appareils portatifs et les tablettes?
- L'objectif est de détecter n'importe quel appareil mobile.
- Pour détecter si l'écran tactile: stackoverflow.com/questions/11387805/touchscreen-media-queries , changement d'orientation: stackoverflow.com/questions/13803838/...
Vous devez vous connecter pour publier un commentaire.
Mise à jour (juin 2016): j'essaie maintenant de l'appui touche entrée de la souris et sur chaque résolution, puisque le dispositif paysage est lentement en brouillant les lignes entre ce que les choses sont et ne sont pas les appareils tactiles. iPad Pros sont en contact uniquement avec la résolution d'un 13" ordinateur portable. Windows ordinateurs portables sont désormais viennent souvent avec des écrans tactiles.
D'autres similaires AFIN de réponses (voir autre réponse sur cette question) peut avoir différentes façons d'essayer de comprendre à quel type de périphérique de l'utilisateur à l'aide, mais aucun n'est infaillible. Je vous invite à consulter ces réponses si vous avez absolument besoin pour essayer de déterminer l'appareil.
iPhones, pour l'un, ignorer le
handheld
requête (Source). Et je ne serais pas surpris si d'autres smartphones à faire, aussi, pour les mêmes raisons.La meilleure façon que j'utilise pour détecter un appareil mobile est de connaître sa largeur et de l'utilisation de la médias correspondants requête pour l'attraper. Ce lien il y a une liste de certains des plus populaires. Une rapide recherche sur Google donnerait tout vous autres, vous pourriez avoir besoin, j'en suis sûr.
Pour plus d'iPhone spécifiques (telles que l'affichage de la Rétine), découvrez ce premier lien que j'ai posté.
n
fois plus faible que la physique, la taille du pixel (avecn
étant de 1, 2, 3...) E. g. voir mydevice.io/périphériques les médias De cours requêtes à l'aide de la taille de l'écran pour détecter le type d'appareil est lourd, mais il n'y a pas beaucoup d'autres options partout malheureusement...device-width
etdevice-height
fonctionnalités de médiasDétection des périphériques mobiles
Liées réponse: https://stackoverflow.com/a/13805337/1306809
Il n'y a pas d'approche unique qui est vraiment à toute épreuve. Le meilleur pari est de mélanger et assortir une variété de tours que nécessaire, afin d'augmenter les chances de succès de la détection d'un plus large éventail d'appareils de poche. Voir le lien ci-dessus pour quelques options différentes.
Ne pas détecter les appareils mobiles, allez à l'arrêt à la place.
De nos jours (2016) il y a un moyen de détecter les points par pouce/cm/px qui semble fonctionner dans la plupart des navigateurs modernes (voir http://caniuse.com/#feat=css-media-resolution). J'avais besoin d'une méthode pour établir une distinction entre un écran relativement petit, l'orientation n'a pas d'importance, et l'arrêt de l'écran d'ordinateur.
Parce que beaucoup de navigateurs mobiles ne prennent pas en charge ce, on peut écrire le général code css pour tous les cas et l'utilisation de cette exception pour les grands écrans:
À la fois Windows XP et 7 ont de la valeur par défaut de 1 point par pixel (ou 96 ppp). Je ne sais pas pour les autres systèmes d'exploitation, mais cela fonctionne vraiment bien pour mes besoins.
Edit: dppx ne semble pas fonctionner dans Internet Explorer.. l'utilisation (96)ppp au lieu.
Voici comment je l'ai fait:
Basé sur https://stackoverflow.com/a/42835826/1365066
Je sais que c'est un vieux thread mais j'ai pensé que cela pourrait aider quelqu'un:
Appareils mobiles ont plus de hauteur que de largeur, au contraire, les ordinateurs ont une plus grande largeur que la hauteur. Par exemple:
donc, qui aurait à faire pour chaque largeur, je suppose.
Je crois que d'une façon beaucoup plus fiable pour détecter les appareils mobiles est de regarder le navigateur.userAgent chaîne. Par exemple, sur mon iPhone la chaîne de l'agent utilisateur est:
Noter que cette chaîne contient deux révélateurs mots-clés: iPhone et Mobile. D'autres chaînes d'agent utilisateur pour les appareils que je n'ai pas sont disponibles à l'adresse:
https://deviceatlas.com/blog/list-of-user-agent-strings
À l'aide de cette chaîne, j'ai créé un script JavaScript variable Booléenne bMobile sur mon site web soit vrai ou faux en utilisant le code suivant: