检测 iOS 版本

Posted

技术标签:

【中文标题】检测 iOS 版本【英文标题】:Detect iOS Version 【发布时间】:2016-08-12 04:58:27 【问题描述】:

我目前正在使用下面的代码来检查用户正在运行的 ios 版本但是它有一个小问题,如果版本有第 3 位数字,它不会添加句点,所以当我检查时它在运行 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>

【问题讨论】:

为什么需要知道确切的版本? 将根据用户 iOS 版本提供内容,确切的版本对于定义他们获得的内容很重要 “内容”是什么意思?你不能改用特征检测吗? 其越狱相关内容和固件特定 【参考方案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;

【讨论】:

【参考方案2】:

这个家伙的帖子对我有用

Detect iOS version less than 5 with javascript

来自彼得·T·博斯二世

这里也是使用纯 javascript 的道具。

【讨论】:

以上是关于检测 iOS 版本的主要内容,如果未能解决你的问题,请参考以下文章

检测 iOS 版本

iOS自动检测版本更新

iOS自动检测版本更新

iOS开发之一句代码检测APP版本的更新-Swift版本

Testflight 假 iOS 版本检测

使用 JavaScript 检测 iOS 5 或更高版本