2012-12-10 39 views
30

tôi sử dụng mã JavaScriptChrome dành cho iOS phát hiện

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

để phát hiện thiết bị di động, nhưng Chrome ở iOS không được phát hiện. Có cách nào để phát hiện nó không? Cảm ơn.

+0

Tại sao bạn cần thực hiện việc này? – Blender

+0

tôi cần điều này cho các hiệu ứng hình ảnh đặc biệt chỉ hiển thị trên máy tính để bàn – cr1msaun

+1

Phát hiện xem trình duyệt có hỗ trợ chạm hay không và áp dụng lớp cho phần tử 'body'. Modernizr làm điều này. – Blender

Trả lời

82

Theo Google Developers, UA chuỗi trông giống như sau:

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 

Nơi khác với Safari của Safari ở chỗ nó nói CriOS thay vì Version. Vì vậy, điều này:

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

Nên làm điều đó.

+0

Cảm ơn, điều đó hoạt động! – cr1msaun

+0

Bạn sử dụng trình duyệt để đánh hơi các lỗi trình duyệt rất cụ thể. –

+9

Tôi phải sử dụng điều này vì chrome trên ios được coi là "trình duyệt không được hỗ trợ" cho hệ thống đăng nhập của facebook. Không có cách nào để phát hiện tính năng trên đó. – Soviut

-3

Có lẽ, bạn có thể thử:

var os = navigator.platform; 

Sau đó xử lý các biến os phù hợp cho kết quả của bạn.

Bạn cũng có thể lặp qua từng đối tượng của đối tượng navigator để giúp bạn có được nhiều hơn làm quen với các đối tượng:

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

Như tìm thấy trong anwser này: jQuery/Javascript to detect OS without a plugin?

+1

Thao tác này không giải quyết được tình huống cụ thể được nêu trong OP, điều này đang phát hiện ứng dụng Chrome trên iOS. –

1

nếu bạn muốn câu trả lời đơn giản đúng/sai:

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

bạn có thể sử dụng 51Degrees' giải pháp đám mây miễn phí dựa để có được thông tin này. Là một phần của dịch vụ đám mây miễn phí, bạn có quyền truy cập vào thuộc tính BrowserName bao gồm Chrome dành cho iO.

Một số mã mẫu bạn có thể sử dụng ở bên dưới. Bạn có thể lấy chìa khóa đám mây miễn phí bằng cách đi qua trang cửa hàng ở đây 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> 

Để biết thêm thông tin về việc sử dụng API Javascript Đám mây mà bạn có thể xem thêm hướng dẫn tại đây https://51degrees.com/Developers/Documentation/APIs/Cloud-API/JavaScript-Cloud

Tiết lộ: Tôi làm việc tại 51Degrees

Các vấn đề liên quan