2012-12-10 16 views
30

używam kodu JavaScriptiOS Chrome wykrywanie

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

wykrywania urządzeń mobilnych, ale Chrome na iOS nie jest wykrywany. Czy istnieje sposób, aby to wykryć? Dzięki.

+0

Dlaczego musisz to zrobić? – Blender

+0

Potrzebuję tego do specjalnych efektów wizualnych widocznych tylko na komputerach. – cr1msaun

+1

Wykryj, czy przeglądarka obsługuje dotyk i stosuje klasę do elementu 'body'. Modernizr to robi. – Blender

Odpowiedz

82

według Google Developers, UA ciąg wygląda tak:

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 

Gdzie różni się od Safari na iOS tym, że mówi CriOS zamiast Version. A więc:

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

Należy to zrobić.

+0

Dzięki, to działa! – cr1msaun

+0

Sniffing w przeglądarce służy do zwalczania bardzo specyficznych błędów przeglądarki. –

+9

Muszę tego użyć, ponieważ chrome na ios jest uważane za "nieobsługiwaną przeglądarkę" dla systemu logowania Facebooka. Nie ma możliwości wykrycia funkcji. – Soviut

-3

Być może, można spróbować:

var os = navigator.platform; 

Następnie obsługiwać zmienną os odpowiednio do wyniku.

Można również pętli każdego przedmiotu obiektu navigator, aby pomóc Ci bardziej zaznajomiony z przedmiotów:

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

jak znaleźć w tym anwser: jQuery/Javascript to detect OS without a plugin?

+1

Nie rozwiązuje to określonego scenariusza opisanego w OP, który wykrywa aplikację Chrome na iOS. –

1

jeśli chcesz prosty prawdziwe/fałszywe odpowiedź:

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

można użyć roztworu wolny chmura oparciu 51Degrees', aby uzyskać te informacje. W ramach bezpłatnej usługi w chmurze masz dostęp do właściwości BrowserName, która obejmuje Chrome dla iOs.

Oto przykładowy kod, który można wykorzystać. Możesz uzyskać darmowy klucz cloud przechodząc przez strony sklepu tutaj 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> 

Aby uzyskać więcej informacji na temat korzystania z API JavaScript chmurze można zobaczyć więcej tutoriali tutaj https://51degrees.com/Developers/Documentation/APIs/Cloud-API/JavaScript-Cloud

Disclosure: Pracuję na 51Degrees

Powiązane problemy