La détection iOS / Android système d'Exploitation
J'ai fait quelques recherches, et cette question a été soulevée, mais pas de la façon que je le voudrais. Je suis en train de construire une page pour un client qui est un code QR à l'atterrissage, qui est un lieu de télécharger une application. Donc, il n'a pas d'imprimer les 2 codes QR sur une page, je tiens à détecter le système d'exploitation (Apple/Android/Autres[non pris en charge]) et modifier mes éléments en fonction de cette valeur.
J'ai regardé le script "detectmobilebrowsers" et c'est seulement destiné à dire si oui ou non l'utilisateur est mobile à tous, alors que je voudrais comprendre ce système d'exploitation, l'utilisateur est en cours d'exécution et vous proposer la meilleure version de l'application.
D'autres réponses que j'ai trouvé de similaire à cette question semblait obsolète ou peu fiables (n'a pas de détection pour tablette Android navigateurs), je suis donc à la recherche de quelque chose de nouveau. Comment puis-je y parvenir? (De préférence à l'aide de jQuery - Javascript - PHP dans cet ordre).
- L'agent utilisateur ne veut pas vous dire ce que vous devez savoir?
- Ce problème a déjà été résolu ici : stackoverflow.com/questions/3514784/...
- qui décrit si l'utilisateur est mobile, pas le système d'exploitation qu'ils sont en cours d'exécution. Babak, serait quelque chose comme navigateur.la plate-forme soit la solution? Je suis familier avec les agents utilisateurs. Comment puis-je m'assurer qu'il va travailler pour TOUS les appareils android quelle que soit la version?
- Il n'y a aucune garantie pour le détecter, depuis l'agent de l'utilisateur est la seule chose que vous pouvez aller sur. Vérifiez ici pour plus d'infos... whatsmyos.com
- Lozada : Sur la a accepté de répondre, ils se sont contentés de tester si c'est un iPhone, un iPod, un appareil Android ou que ce soit pour renvoyer la valeur true. Il suffit de garder ceux que vous voulez, par exemple
if( /Android/i.test(navigator.userAgent) ) { // some code.. }
sera de retour vrai que pour Android user-agents. - merci. Je crois que c'est assez différent de la situation d'avoir une réponse, surtout pour les gens comme moi qui ne sont pas très bons à la compréhension regexes/lumière sur javascript connaissances. Si vous souhaitez faire de votre commentaire une réponse que j'avais l'accepter comme réponse. De toute façon, à partir de la lecture il ne ressemble pas à userAgents les plus fiables sont les choses - mais je suppose que c'est le meilleur cours de l'action?
- Voici une liste des agents utilisateurs pour vous de assurez-vous que vous couvrez toutes vos cible les navigateurs mobiles
- double possible de Détecter si le navigateur est en cours d'exécution sur un appareil Android ou iOS
Vous devez vous connecter pour publier un commentaire.
Vous pouvez tester la chaîne de l'agent utilisateur:
Android
à leur Bord du navigateur chaîne userAgent ce test ne fonctionnera pas pour de nombreux Téléphones Windows: msdn.microsoft.com/en-us/library/hh869301(v=vs. 85).aspxelse if (userAgent.match(/Windows Phone/i)) { return 'WindowsPhone'; }
avant Android else if pour détecter les Windows Phone. Jusqu'à présent, semble fonctionner correctement.iOS
nous devons également vérifier!window.MSStream
pour éviter IE11 étant comptés commeiOS
😉Solution 1: L'Utilisateur De L'Agent Sniffing
Pour Android et iPhone:
Si vous voulez détecter tous les appareils mobiles, y compris le blackberry et Windows phone, alors vous pouvez utiliser cette version:
Contre: l'agent Utilisateur chaînes sont en train de changer et obtenir des mises à jour que les nouveaux téléphones et les marques sont à venir de jour en jour. Si vous avez besoin de garder cette liste à jour si vous voulez soutenir tous les appareils mobiles.
Solution 2: mobile détecter bibliothèque JS
Vous pouvez utiliser le mobile détecter bibliothèque JS pour ce faire.
Contre: Ces JavaScript-dispositif de détection de caractéristiques ne peuvent travailler que pour la nouvelle génération de smartphones, comme l'iPhone, Android et Palm WebOS. Ces appareils de détection de fonctionnalités peuvent ne PAS fonctionner pour les anciens smartphones qui avaient une mauvaise prise en charge de JavaScript, y compris les anciens BlackBerry, PalmOS, et les appareils Windows Mobile.
Ce problème a déjà été résolu ici : Quel est le meilleur moyen de détecter un périphérique mobile en jQuery?.
Sur la accepté de répondre, ils se sont contentés de tester si c'est un iPhone, un iPod, un appareil Android ou que ce soit pour renvoyer la valeur true. Il suffit de garder ceux que vous voulez, par exemple
if( /Android/i.test(navigator.userAgent) ) { //some code.. }
sera de retour vrai que pour Android user-agents.Toutefois, les agents utilisateurs ne sont pas vraiment fiables, car ils peuvent être changé. La meilleure chose est encore à développer quelque chose d'universel pour toutes les plates-formes mobiles.
On peut utiliser navigator.plate-forme pour obtenir le système d'exploitation sur lequel le navigateur est installé.
Vous pouvez également Réaliser cela avec l'agent utilisateur sur php:
}
Vous pouvez également créer Firbase des liens Dynamiques qui va travailler pour votre condition. Il prend en charge de multiples plates-formes. Ce lien peut être créé manuellement, ainsi que par la programmation. Vous pouvez ensuite intégrer ce lien dans QR code.
Si l'application cible est installé, le lien va rediriger l'utilisateur de l'app. Si elle n'est pas installé, il vous redirigera vers le Play Store/App store/Toute autre configuré site web.
Si vous êtes à l'aide de Réagir Js pour votre site web, utilisez https://www.npmjs.com/package/react-device-detect
À l'aide de l'cordova-appareil-plugin, vous pouvez détecter
sera "Android" pour android, et "windows" pour windows. Travaux sur l'appareil, et lors de la simulation sur navigateur. Voici un toast qui affichera le périphérique valeurs: