2016-08-12 95 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; 
}