Gibt es eine korrekte / empfohlene Möglichkeit, meine UWP-App, die ich auf einem Telefon verwende, zu erkennen?

8

Windows Universal Apps mit JavaScript ausprobieren Ich habe die WinJS.Utilities.isPhone bemerkt Eigenschaft ist nicht mehr verfügbar, was sinnvoll ist, da es zur Laufzeit keinen Grund dafür geben würde.

Ich möchte nur zu Testzwecken wissen, ob das Gerät, auf dem meine App ausgeführt wird, korrekt erkannt wird.

BEARBEITEN: Meine Frage betrifft NICHT das Erkennen eines mobilen Browsers. Ich spreche von einer brandneuen Universal Windows App für Windows 10, die auf Smartphones, Desktops, Tablets, Xbox, HoloLEns, IoT-Geräten und so weiter laufen kann. WinJS hatte eine Eigenschaft, die mir sagen würde, ob ich telefonierte oder nicht. Diese Eigenschaft ist jetzt weg. Bitte schließen Sie diese Frage nicht wegen Duplizierung mit "Mobilen Browser erkennen". Das ist NICHT, was ich brauche.

    
sebagomez 05.05.2015, 14:07
quelle

3 Antworten

11

Vorbehalt: Jede Form der Geräteerkennung ist aufgrund der dynamischen Natur von Hardware fragil - ein neues Gerät könnte morgen auftauchen und die Logik Ihrer App sprengen. Es empfiehlt sich, diese APIs nur für Telemetrie / Analysen zu verwenden, anstatt das Laufzeitverhalten auszulösen.

In den meisten Fällen möchten Sie ein Attribut des Geräts oder der App kennen, das nicht mit der Gerätefamilie verknüpft ist (unterstützt dieses Gerät SystemTray API?) da eine Tastatur angeschlossen ist? Ist das Fenster mehr als 500 Pixel breit? etc.).

In Windows 10 können Sie die DeviceFamily über AnalyticsInfo.VersionInfo.DeviceFamily und es wird Ihnen sagen Dinge wie" Mobile "oder" Desktop "oder" Xbox "etc. (wo" Mobile "könnte jede Klasse von Gerät sein - Telefon, Tablet, etc.). Es gibt auch eine Eigenschaft DeviceForm , die hilfreich sein könnte, aber wiederum kann man sich zur Laufzeit nicht darauf verlassen, dass man deterministisch "auf einem Telefon" läuft.

Im Grunde lautet die Antwort: "Sie können diese APIs für die Telemetrie verwenden, aber schreiben Sie keine Werte in Ihre App, damit sie nicht bricht, wenn ein neues Gerät auf den Markt kommt." Stellen Sie zumindest sicher, dass Sie immer den Fall behandeln, in dem der zurückgegebene Wert nicht einer ist, den Sie über a-priori wissen.

    
Peter Torr - MSFT 07.05.2015, 04:01
quelle
1

Sie können sich auch die folgenden Links ansehen Ссылка Ссылка

und natürlich ein ähnlicher Beitrag hier im Stackoverflow mit einer guten Antwort

Einen mobilen Browser erkennen

Und wenn wir über Windows 10 sprechen, das aus Winjs Github repo extrahiert, hier ist die Antwort.

Ссылка

    
carlos a. 05.05.2015 14:30
quelle
0

Es gibt zahlreiche JS-Bibliotheken, um zu erkennen, welche Plattform / welches Gerät verwendet wird.

Ich persönlich liebe es, diese Bibliothek zu benutzen: Ссылка

Sie werden dann in der Lage sein, mobile Geräte auf folgende Weise zu erkennen:

%Vor%

und so weiter.

Falls Sie eine Idee haben, eine solche Lib selbst zu implementieren, denken Sie daran, dass es einige Anstrengungen braucht, um sie auf dem neuesten Stand zu halten, da sich die Möglichkeiten zur Erkennung mobiler Geräte mit der Zeit ändern können.

Im Allgemeinen wird die Erkennung von Abfrage-Headern häufig durch die Erkennung von Benutzergeräten durchgeführt.

Beachten Sie jedoch, dass Sie sich nicht unbedingt auf diese Informationen verlassen können - Header können leicht geändert werden. Google für User Agent für weitere Informationen.

Also "Auth-Prozess für Benutzer mit Telefonen auslassen" ist extrem schlechte Idee

    
borisano 05.05.2015 14:27
quelle