Je dois modifier des boutons et du texte sur un site Web mobile, selon que l'utilisateur le visualise sur un navigateur Android ou iOS. Existe-t-il un moyen fiable d'effectuer le contrôle?
Réponses
Trop de publicités?var isMobile = {
Android: function() {
return /Android/i.test(navigator.userAgent);
},
BlackBerry: function() {
return /BlackBerry/i.test(navigator.userAgent);
},
iOS: function() {
return /iPhone|iPad|iPod/i.test(navigator.userAgent);
},
Windows: function() {
return /IEMobile/i.test(navigator.userAgent);
},
any: function() {
return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Windows());
}
};
Je voudrais utiliser l' navigator.useragent
propriété afin d'obtenir l'useragent-chaîne, de l'analyser, et de détecter l'OS.
Ici est un exemple de comment vous pouvez le faire.
Mise à jour:
En raison de la popularité de cette question, j'ai pensé que je voudrais ajouter quelques informations supplémentaires à ma réponse.
En général, la détection de browser n'est presque jamais la meilleure façon d'aller. Pourquoi? Eh bien, il ya de nombreuses raisons, mais en voici deux bonnes:
- Dans presque tous les cas, quand les gens se tournent vers les browser sniffing, la détection de fonctionnalité serait une meilleure option. Il existe de rares cas où il pourrait être approprié d'agir en fonction de ce que l'OS/navigateur de l'utilisateur peut être utilisé, mais, pour la plupart, à l'aide d'une bibliothèque comme Modernizr pour détecter la prise en charge pour une fonctionnalité spécifique est une meilleure façon d'aller. Essayez d'adapter votre site/application à certains navigateurs plutôt que les caractéristiques qu'ils soutiennent est une pente glissante. Au lieu de vérifier si le navigateur prend en charge les fonctionnalités dont vous avez besoin, et polyfill ou de fournir nice réserves quand au manque d'appui.
- Browser sniffing est extrêmement compliqué. Pourquoi? Parce que presque tous les navigateurs résident dans leur chaîne de l'agent utilisateur ou de l'absence d'informations suffisantes pour permettre une identification certaine.
Avec cela étant dit, si vous avez vraiment vraiment besoin d'utiliser le navigateur/détection de système d'exploitation, puis de ne pas réinventer la roue, et de ne pas essayer de le faire sur votre propre, vous serez dans un monde de douleur et obscure mises en garde! Je vous suggère d'utiliser une bibliothèque comme WhichBrowser, qui vous fournira avec une pratique de l'objet JavaScript contenant des informations sur le système d'exploitation, navigateur, moteur de rendu et d'appareil.
Vous pouvez utiliser l'objet navigateur: http://www.w3schools.com/js/js_browser.asp , puis utiliser des instructions if basées sur les propriétés du navigateur.