2016-08-12 100 views
3

我目前使用下面的代碼來檢查用戶正在運行的是哪個版本的iOS,但它有一個小問題,如果有一個第三位的版本,它不會添加一段時間,所以當我在運行iOS 9.0.1的設備上檢查它時,它會返回9.01,但我無法弄清楚如何解決下面的問題,以便在第二個和第三個數字之間添加一個句點。任何幫助表示讚賞:)檢測iOS版本

<body> 

<button onclick="myFunction()">Detect</button> 

<p id="demo"></p> 

<script> 
function myFunction(){ 

var iOS = parseFloat(
    ('' + (/CPU.*OS ([0-9_]{1,5})|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent) || [0,''])[1]) 
    .replace('undefined', '3_2').replace('_', '.').replace('_', '') 
) || false; 

alert(iOS) 

} 
</script> 
</body> 
+2

爲什麼你需要知道確切的版本? – str

+0

根據用戶iOS版本提供內容,確切版本對於定義他們獲得的內容很重要 –

+0

「內容」是什麼意思?你不能使用功能檢測嗎? – str

回答

1

你可以使用這個傢伙提到的JQuery。這適用於我的iOS 10 Beta。 https://codepen.io/niggi/pen/DtIfy

否則,你可以試試這個

function iOSVersion() { 
    if(window.MSStream){ 
    // There is some iOS in Windows Phone... 
    // https://msdn.microsoft.com/en-us/library/hh869301(v=vs.85).aspx 
    return false; 
    } 
    var match = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/), 
     version; 

    if (match !== undefined && match !== null) { 
    version = [ 
     parseInt(match[1], 10), 
     parseInt(match[2], 10), 
     parseInt(match[3] || 0, 10) 
    ]; 
    return parseFloat(version.join('.')); 
    } 

    return false; 
}