J'ai fait des recherches et cette question a été soulevée, mais pas de la façon dont je l'entendais. Je construis une page pour un client qui est un atterrissage de code QR, qui est un endroit pour télécharger une application. Il n'a donc pas besoin d'imprimer 2 QR codes sur une page, j'aimerais détecter le système d'exploitation actuel (Apple / Android / Autre [non supporté]) et modifier mes éléments en fonction de cette valeur.
J'ai regardé le script "detectmobilebrowsers" et il vise simplement à dire si l'utilisateur est mobile ou non, alors que j'aimerais savoir quel système d'exploitation l'utilisateur utilise et suggérer la meilleure version de l'application.
D'autres réponses que j'ai trouvées similaires à cette question semblaient obsolètes ou peu fiables (aucune détection pour les navigateurs de tablettes Android), je suis donc à la recherche de quelque chose de nouveau. Comment puis-je atteindre cet objectif? (De préférence en utilisant jQuery - Javascript - PHP dans cet ordre).
la source
if( /Android/i.test(navigator.userAgent) ) { // some code.. }
ne retournera vrai que pour les agents utilisateurs Android.Réponses:
Vous pouvez tester la chaîne de l'agent utilisateur:
la source
else if (userAgent.match(/Windows Phone/i)) { return 'WindowsPhone'; }
avant l'Android sinon pour détecter Windows Phone. Jusqu'à présent, cela semble fonctionner correctement.iOS
nous devons également vérifier!window.MSStream
pour éviter que IE11 ne soit compté commeiOS
;-)Solution 1: Reniflage de l'agent utilisateur
Pour Android et iPhone:
Si vous souhaitez détecter tous les appareils mobiles, y compris le BlackBerry et le téléphone Windows, vous pouvez utiliser cette version complète:
Les inconvénients : les chaînes des agents utilisateurs changent et sont mises à jour au fur et à mesure que de nouveaux téléphones et marques arrivent de jour en jour. Vous devez donc garder cette liste à jour si vous souhaitez prendre en charge tous les appareils mobiles.
Solution 2: bibliothèque JS de détection mobile
Vous pouvez utiliser la bibliothèque JS mobile detect pour ce faire.
Les inconvénients : ces fonctionnalités de détection d'appareils basées sur JavaScript peuvent UNIQUEMENT fonctionner pour la dernière génération de smartphones, tels que les appareils iPhone, Android et Palm WebOS. Ces fonctionnalités de détection des appareils peuvent NE PAS fonctionner pour les anciens smartphones qui avaient une prise en charge médiocre de JavaScript, y compris les anciens appareils BlackBerry, PalmOS et Windows Mobile.
la source
On peut utiliser navigator.platform pour obtenir le système d'exploitation sur lequel le navigateur est installé.
la source
Ce problème a déjà été résolu ici: Quelle est la meilleure façon de détecter un appareil mobile dans jQuery? .
Sur la réponse acceptée, ils testent essentiellement si c'est un iPhone, un iPod, un appareil Android ou autre pour retourner vrai. Gardez simplement ceux que vous voulez par exemple
if( /Android/i.test(navigator.userAgent) ) { // some code.. }
ne retournera vrai que pour les agents utilisateurs Android.Cependant, les user-agents ne sont pas vraiment fiables puisqu'ils peuvent être modifiés. Le mieux reste de développer quelque chose d'universel pour toutes les plateformes mobiles.
la source
Vous pouvez également y parvenir avec l'agent utilisateur sur php:
}
la source
Si vous utilisez React Js pour votre site Web, utilisez https://www.npmjs.com/package/react-device-detect
la source
Vous pouvez également créer des liens dynamiques Firbase qui fonctionneront selon vos besoins. Il prend en charge plusieurs plates-formes. Ce lien peut être créé aussi bien manuellement que par programmation. Vous pouvez ensuite intégrer ce lien dans le code QR.
Si l'application cible est installée, le lien redirigera l'utilisateur vers l'application. S'il n'est pas installé, il sera redirigé vers Play Store / App Store / Tout autre site Web configuré.
la source
Pour cela et d'autres types de détections de clients, je suggère cette bibliothèque js: http://hictech.github.io/navJs/tester/index.html
Pour votre réponse spécifique, utilisez:
la source
En utilisant le plugin cordova-device-plugin, vous pouvez détecter
sera "Android" pour Android et "Windows" pour Windows. Fonctionne sur l'appareil et lors de la simulation sur le navigateur. Voici un toast qui affichera les valeurs de l'appareil:
la source