2012-12-10 12 views
30

verwende ich Javascript-CodeIOS Chrome Erkennung

if((Android|webOS|iPhone|iPad|iPod|BlackBerry).test(navigator.userAgent)) {} 

für Mobilgeräteerkennung, aber Chrome bei IOS wird nicht erkannt. Gibt es eine Möglichkeit, es zu erkennen? Danke.

+0

Warum müssen Sie das tun? – Blender

+0

Ich brauche dies für spezielle visuelle Effekte, die nur auf Desktops sichtbar sind. – cr1msaun

+1

Ermitteln, ob der Browser Touch-Unterstützung hat und eine Klasse auf das 'body' Element anwenden. Modernizr macht das. – Blender

Antwort

82

zu Google Developers Laut, der UA Zeichenkette sieht so aus:

Mozilla/5.0 (iPhone; U; CPU iPhone OS 5_1_1 like Mac OS X; en) AppleWebKit/534.46.0 (KHTML, like Gecko) CriOS/19.0.1084.60 Mobile/9B206 Safari/7534.48.3 

Wo unterscheidet sich von iOS Safari darin, dass essagtanstelle von Version. Also das:

if(navigator.userAgent.match('CriOS')) 

sollte es tun.

+0

Danke, das funktioniert! – cr1msaun

+0

Sie verwenden Browser-Sniffing, um sehr spezifische Browserfehler zu bekämpfen. –

+9

Ich muss das verwenden, weil chrome auf ios als "nicht unterstützter Browser" für das Login-System von Facebook gilt. Keine Möglichkeit, Feature-Erkennung zu machen. – Soviut

-3

Vielleicht könnten Sie versuchen:

var os = navigator.platform; 

dann die os Variable behandeln entsprechend für Ihr Ergebnis.

Sie können auch eine Schleife durch jedes Objekt des Navigators Objekt zu helfen, mehr mit den Objekten vertraut zu machen:

<script type="text/javascript"> 
for(var i in navigator){ 
    document.write(i+"="+navigator[i]+'<br>'); 
} 
</script> 

Wie in diesem anwser gefunden: jQuery/Javascript to detect OS without a plugin?

+1

Dies löst nicht das spezifische Szenario, das vom OP beschrieben wird, das die Chrome App unter iOS erkennt. –

1

wenn Sie wollen einfach wahr/falsch Antwort:

if(/CriOS/i.test(navigator.userAgent) && 
/iphone|ipod|ipad/i.test(navigator.userAgent)){ 
    return true; 
}else{ 
    return false; 
} 
0

Sie 51Degrees' kostenlose Cloud-basierte Lösung verwenden können, um diese Informationen zu erhalten. Als Teil des kostenlosen Cloud-Dienstes haben Sie Zugriff auf die Eigenschaft BrowserName, die Chrome für iOS enthält.

Einige Beispielcode, den Sie verwenden könnten, ist unten. Sie können die kostenlose Cloud-Schlüssel erhalten, indem https://51degrees.com/products/store/rvdsfcatid/cloud-device-detection-7

<!DOCTYPE html> 
<html> 
<body> 
<p id="id01"></p> 
<script> 
var xmlhttp = new XMLHttpRequest(); 
<!-- Insert Cloud key here. --> 
var key = "Licence Key" 
<!-- Receives UserAgent from clients connection. --> 
var ua = window.navigator.userAgent; 

<!-- Lists the properties required. --> 
var url = ("https://cloud.51degrees.com/api/v1/"+key+"/match?user-agent="+ua+"&Values=\ 
    BrowserName"); 

<!-- Parses the JSON object from our cloud server and returns values. --> 
xmlhttp.onreadystatechange = function(){ 
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200){ 
     var match = JSON.parse(xmlhttp.responseText); 
     var text = "" 
     document.getElementById("id01").innerHTML=\ 
     "UserAgent:"+ua+"</br>"+ 
     "BrowserName:"+match.Values.BrowserName; 
    } 
}  
<!-- Sends request to server. --> 
xmlhttp.open("GET", url, true); 
xmlhttp.send();  
</script> 
</body> 
</html> 

auf Verwendung Für weitere Informationen hier durch die Store-Seite gehen der JavaScript-Cloud API Sie hier weitere Tutorials sehen können https://51degrees.com/Developers/Documentation/APIs/Cloud-API/JavaScript-Cloud

Disclosure: Ich arbeite bei 51Degrees