检测iOS版本

6

我目前正在使用以下代码来检查用户运行的iOS版本,但它有一个小问题:如果版本有第三个数字,则不会在其后添加句点,因此当我在运行iOS 9.0.1的设备上进行检查时,它返回9.01,我一直没有能够解决如何修复以下内容来在第二个和第三个数字之间添加句点。非常感谢您的帮助 :)

<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
我将根据用户的iOS版本提供内容,确切的版本对于定义他们获得的内容非常重要。 - Dylan Duff
“content”是什么意思?你不能使用特性检测吗? - str
这是关于越狱的内容,而且是特定于固件的。 - Dylan Duff
2个回答

4
你可以使用这个人提到的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;
}

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接