web-dev-qa-db-fra.com

HTML5: Détecter si vous êtes sur mobile ou pc avec javascript?

Quel code javascript puis-je utiliser pour détecter si les utilisateurs sont sur un navigateur mobile ou pc/mac en HTML5?

12
gustavdebruyn

J'examinais cela il y a quelques années. En bref, vous ne pouvez pas le faire avec une fiabilité à 100%. Il semble y avoir 2 approches couramment utilisées pour fournir une `` meilleure estimation '':

1. Détection d'agent utilisateur C'est ici que vous vérifiez ce que le client prétend être. par exemple.

if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
    // is mobile..
}

Ce n'est pas parfait, car je pense qu'il est assez facile de modifier cette propriété accidentellement ou autrement. De plus, il est très peu probable que cette liste soit toujours exacte dans 2 ans/2 semaines/2 jours!

2. Utilisation des capacités du client Comme vous pouvez l'imaginer, une approche plus pragmatique - vous permet de répondre aux capacités physiques connues du client. par exemple.

if( screen.width <= 480 ) {     
    // is mobile.. 
}

Cependant, ce n'est pas idéal non plus, car des densités de pixels de plus en plus élevées dans les appareils modernes vous donnent un résultat trompeur: apparaître que vous avez plus de "place" que vous n'en avez réellement. De plus, différents navigateurs peuvent exposer leurs capacités par différents moyens.

Si quelqu'un a de meilleures idées pour discerner efficacement entre le bureau et l'appareil, veuillez commenter! :)

31
ne1410s