Ich habe einige Nachforschungen angestellt, und diese Frage ist aufgetaucht, aber nicht so, wie ich es beabsichtige. Ich erstelle eine Seite für einen Client, bei der es sich um eine QR-Code-Landung handelt. Hier können Sie eine Anwendung herunterladen. Damit er nicht 2 QR-Codes auf einer Seite ausdrucken muss, möchte ich das aktuelle Betriebssystem (Apple / Android / Andere [nicht unterstützt]) erkennen und meine Elemente basierend auf diesem Wert ändern.
Ich habe mir das Skript "detectmobilebrowsers" angesehen und es soll nur zeigen, ob der Benutzer überhaupt mobil ist oder nicht, während ich herausfinden möchte, welches Betriebssystem der Benutzer ausführt, und die beste Anwendungsversion vorschlagen möchte.
Andere Antworten, die ich ähnlich wie diese Frage gefunden habe, schienen entweder veraltet oder unzuverlässig zu sein (hat keine Erkennung für Android-Tablet-Browser), daher bin ich auf der Suche nach etwas Neuem. Wie kann ich das erreichen? (Verwenden Sie vorzugsweise jQuery - Javascript - PHP in dieser Reihenfolge).
quelle
if( /Android/i.test(navigator.userAgent) ) { // some code.. }
nur für Android-Benutzeragenten true zurückgeben.Antworten:
Sie können die Benutzeragentenzeichenfolge testen:
quelle
else if (userAgent.match(/Windows Phone/i)) { return 'WindowsPhone'; }
vor dem Android sonst hinzugefügt, ob Windows Phone erkannt werden soll. Bisher scheint es gut zu funktionieren.iOS
wir auch überprüfen!window.MSStream
, um zu vermeiden, dass IE11 als gezählt wirdiOS
;-)Lösung 1: User Agent Sniffing
Für Android und iPhone:
Wenn Sie alle mobilen Geräte einschließlich Blackberry und Windows Phone erkennen möchten, können Sie diese umfassende Version verwenden:
Nachteile : Die Zeichenfolgen der Benutzeragenten ändern sich und werden aktualisiert, da Tag für Tag neue Telefone und Marken hinzukommen. Sie müssen diese Liste also auf dem neuesten Stand halten, wenn Sie alle Mobilgeräte unterstützen möchten.
Lösung 2: Mobile Erkennungs-JS-Bibliothek
Sie können dazu die JS-Bibliothek zur mobilen Erkennung verwenden .
Nachteile : Diese JavaScript-basierten Geräteerkennungsfunktionen funktionieren möglicherweise NUR für die neueste Generation von Smartphones, wie z. B. iPhone-, Android- und Palm WebOS-Geräte. Diese Geräteerkennungsfunktionen funktionieren möglicherweise NICHT für ältere Smartphones, die JavaScript nur unzureichend unterstützen, einschließlich älterer BlackBerry-, PalmOS- und Windows Mobile-Geräte.
quelle
Sie können navigator.platform verwenden , um das Betriebssystem abzurufen, auf dem der Browser installiert ist.
quelle
Dieses Problem wurde hier bereits behoben: Wie kann ein mobiles Gerät in jQuery am besten erkannt werden?.
Bei der akzeptierten Antwort testen sie im Grunde, ob es sich um ein iPhone, einen iPod, ein Android-Gerät oder was auch immer handelt, um true zurückzugeben. Behalten Sie einfach die, die Sie zum Beispiel wollen
if( /Android/i.test(navigator.userAgent) ) { // some code.. }
nur für Android-Benutzeragenten true zurückgeben.Benutzeragenten sind jedoch nicht wirklich zuverlässig, da sie geändert werden können. Das Beste ist immer noch, etwas Universelles für alle mobilen Plattformen zu entwickeln.
quelle
Sie können dies auch mit dem Benutzeragenten auf PHP erreichen:
}}
quelle
Wenn Sie React Js für Ihre Website verwenden, verwenden Sie https://www.npmjs.com/package/react-device-detect
quelle
Sie können auch Firbase Dynamic-Links erstellen die Ihren Anforderungen entsprechen. Es unterstützt mehrere Plattformen. Dieser Link kann sowohl manuell als auch über die Programmierung erstellt werden. Sie können diesen Link dann in den QR-Code einbetten.
Wenn die Ziel-App installiert ist, leitet der Link den Benutzer zur App weiter. Wenn es nicht installiert ist, wird es zum Play Store / App Store / zu jeder anderen konfigurierten Website weitergeleitet.
quelle
Für diese und andere Arten der Clienterkennung empfehle ich diese js-Bibliothek: http://hictech.github.io/navJs/tester/index.html
Verwenden Sie für Ihre spezifische Antwort:
quelle
Mit dem Cordova-Device-Plugin können Sie erkennen
wird "Android" für Android und "Windows" für Windows sein. Funktioniert auf dem Gerät und beim Simulieren im Browser. Hier ist ein Toast, der die Gerätewerte anzeigt:
quelle