52

我使用 Javascript 代码

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

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

4

4 回答 4

134

根据Google Developers,UA 字符串如下所示:

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'))

应该这样做。

于 2012-12-10T19:48:11.210 回答
15

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

if(/CriOS/i.test(navigator.userAgent) &&
/iphone|ipod|ipad/i.test(navigator.userAgent)){
    return true;
}else{
    return false;
}
于 2016-05-12T05:51:00.427 回答
-3

也许,您可以尝试:

var os = navigator.platform;

然后为您的结果相应地处理 os 变量。

您还可以遍历 navigator 对象的每个对象,以帮助您更熟悉这些对象:

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

正如在这个anwser中发现的那样: jQuery/Javascript to detect OS without a plugin?

于 2012-12-10T19:35:20.763 回答
-3

您可以使用 51Degrees 的基于云的免费解决方案来获取此信息。作为免费云服务的一部分,您可以访问 BrowserName 属性,其中包括适用于 iOs 的 Chrome。

您可以使用的一些示例代码如下。您可以通过此处的商店页面获取免费的云密钥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 工作

于 2017-04-12T11:23:25.520 回答