2016-06-24 14 views
0

Kurz, aber scheinbar schwierige Frage: Wie kann ich Microsoft Edge-Browser auf dem Desktop der Firma Surface-Tablets in Javascript unterscheiden?Microsoft Edge: Unterscheiden Desktop-vs. Oberfläche/Berühren

Rand auf Windows 10 hat Shows User-Agent

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586 

Was meine Forschung stellte sich heraus, User-Agent auf einer Oberfläche Gerät ist

Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586 

So ist der einzige Unterschied „Win64 zu sein scheint ; x64 ", aber ich kann mich nicht darauf verlassen, da es nur die aktuelle CPU-Architektur anzeigt, oder?

Meine Sorge ist: Ich auf einer Web-Anwendung arbeite, die einige spezielle Menüeinträge für Touch-Geräte bietet, da sie keinen Doppelklick oder rechte Maustaste erkennen. Auf iOS/Android kann ich das leicht herausfinden, aber für Win10 Mobile vs. Desktop ist es schwierig.

Haben Sie andere Hinweise, wie diese Umgebungen zu unterscheiden?

+0

Warum müssen Sie wissen? Das wird uns helfen, mögliche Lösungen zu bieten –

+0

Danke, Sie haben gefragt. Mein Anliegen ist: Ich arbeite an einer Web-Applikation, die einige spezielle Menüeinträge für Touch-Geräte anbietet, da sie keinen Doppelklick oder keine rechte Maustaste erkennen. Auf iOS/Android kann ich das leicht herausfinden, aber für Win10 Mobile vs. Desktop ist es schwierig. – Windwalker

Antwort

1

Mobile Geräte enthält einige Ereignisse, die nicht in Desktop-Browsern

Sie können so etwas wie diese Funktion

function isTouch() { 
    var touch = false; 
    try { 
    document.createEvent("TouchEvent"); 
    touch = true; 
    } catch (e) {} 
    return touch; 
} 
+1

Es gibt Laptops mit Touchscreen, für die solche Annahmen nicht :(habe ich gelernt, das der hardway – BBog

+0

Das ist ganz richtig, aber auf diesen Geräten sollte ein Benutzer die Maus als Eingabegerät verwenden, da meine Anwendung in erster Linie für Desktop-basierte konzipiert Kunden. – Windwalker

+0

Tatsächlich verwende ich Modernizr Ansatz Touch-Browser ('return !! ('ontouchstart' in Fenster) || !! ('onmsgesturechange' in Fenster)') zu unterscheiden, aber das unterscheidet nicht zwischen IE11/Edge-Desktop und Oberfläche/Tablette – Windwalker

2

verwenden Ich denke, Sie haben falsch User Agent Zeichenfolge für mobile Geräte:

Mozilla/5.0 (Windows Phone 10,0; Android;;) AppleWebKit/(KHTML, wie Gecko) Chrome/Mobile Safari/Rand /.

Es ist verfügbar unter MSDN.

+0

Nun, mein zitierter Surface User Agent ist eigentlich von einem Trekstor Windows 10 Surftab abgeleitet, das ein Freund von mir besitzt. – Windwalker