détection de Chrome iOS

J'utilise du code Javascript

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

Pour la détection des appareils mobiles, mais Chrome sur iOS n'est pas détecté. Est-il un moyen de le détecter? Grâce.

31
demandé sur cr1msaun 2012-12-10 23:31:29

4 réponses

Selon Google Developers , la chaîne UA ressemble à ceci:

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

Où il diffère de iOS Safari en ce sens qu'il dit CriOS au lieu de Version. Donc ceci:

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

Devrait le faire.

87
répondu John Henry Briggs 2016-01-11 17:03:40

Si vous voulez une réponse simple vrai / faux:

if(/CriOS/i.test(navigator.userAgent) &&
/iphone|ipod|ipad/i.test(navigator.userAgent)){
    return true;
}else{
    return false;
}
3
répondu Chen_Wayne 2016-05-12 06:29:25

Vous pouvez utiliser la solution cloud gratuite de 51Degrees pour obtenir ces informations. Dans le cadre du service cloud gratuit, vous avez accès à la propriété BrowserName qui comprend Chrome pour iOs.

Un exemple de code que vous pourriez utiliser est ci-dessous. Vous pouvez obtenir la clé cloud gratuite en passant par la page du magasin ici 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>

Pour plus d'informations sur L'utilisation de L'API JavaScript Cloud, vous pouvez afficher plus de tutoriels ici https://51degrees.com/Developers/Documentation/APIs/Cloud-API/JavaScript-Cloud

Divulgation: je travaille à 51Degrees

0
répondu Zarwalski 2017-04-12 11:23:25

Peut-être, vous pourriez essayer:

var os = navigator.platform;

Ensuite, gérez la variable os en conséquence pour votre résultat.

Vous pouvez également parcourir chaque objet de l'objet navigator pour vous familiariser davantage avec les objets:

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

Comme trouvé dans ce anwser: jQuery / Javascript pour détecter OS sans plugin?

-3
répondu marcelo-ferraz 2017-05-23 11:54:15