iOS Chrome检测

我使用Javascript代码

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

用于移动设备检测,但iOS中的Chrome未被检测到。 有没有办法检测到它? 谢谢。

据Google Developers介绍 ,UAstring如下所示:

 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 

它与iOS Safari不同之处在于它说CriOS而不是Version 。 所以这:

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

应该这样做。

如果你想要简单的真/假答案:

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

您可以使用51Degrees的免费云端解决scheme来获取这些信息。 作为免费云服务的一部分,您可以访问包含Chrome for iOs的BrowserName属性。

下面是一些您可以使用的示例代码。 你可以在这里通过商店页面获得免费的云密钥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> 

有关使用JavaScript Cloud API的更多信息,可以在这里查看更多教程https://51degrees.com/Developers/Documentation/APIs/Cloud-API/JavaScript-Cloud

披露:我在51Degrees工作

也许,你可以尝试:

 var os = navigator.platform; 

然后根据你的结果处理osvariables。

您还可以遍历导航器对象的每个对象,以帮助您更熟悉对象:

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

正如在这个安卓发现: jQuery / Javascript来检测操作系统没有插件?