Подтвердить что ты не робот

Обнаружение Chrome iOS

Я использую код Javascript

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

для обнаружения мобильных устройств, но Chrome в iOS не обнаружен. Есть ли способ обнаружить это? Благодарю.

4b9b3361

Ответ 1

Согласно Разработчикам Google, строка 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'))

Должно это сделать.

Ответ 2

если вам нужен простой истинный/ложный ответ:

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

Ответ 3

вы можете использовать бесплатное облачное решение 51Degrees для получения этой информации. В рамках бесплатного облачного сервиса у вас есть доступ к свойству BrowserName, которое включает Chrome для iOs.

Ниже приведен пример кода, который вы можете использовать. Вы можете получить бесплатный ключ облака, пройдя страницу магазина здесь 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>

Для получения дополнительной информации об использовании облачного API JavaScript вы можете просмотреть дополнительные руководства здесь https://51degrees.com/Developers/Documentation/APIs/Cloud-API/JavaScript-Cloud

Раскрытие: я работаю на 51Degrees

Ответ 4

Возможно, вы могли бы попробовать:

var os = navigator.platform;

Затем обработайте переменную os соответственно для вашего результата.

Вы также можете прокручивать каждый объект объекта навигатора, чтобы помочь вам лучше ознакомиться с объектами:

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

Как найдено в этом андресе: jQuery/Javascript для обнаружения ОС без плагина?