【问题标题】:How can I detect iOS6 device using feature detection如何使用功能检测来检测 iOS6 设备
【发布时间】:2012-12-10 11:50:03
【问题描述】:

是否有任何通用的方法来使用功能检测来检测 iOS6 设备。

【问题讨论】:

  • 所有“高”设备(目前是 iPhone 5 和第 5 代 Touch)都有 iOS6,但这当然只是其中的一小部分(仍然很小)。根据 iOS 版本,你会做什么不同的事情?也许还有另一种方法可以只检测相关信息?
  • 你也许可以从navigator.userAgent得到它
  • 我只是想检测iOS6,感觉特征检测比用userAgent好。

标签: javascript


【解决方案1】:

我认为最好的方法始终是parse the user agent string,但您可以使用以前不受支持的功能检测 iOS 6 引入的 Safari 版本(有关更完整的列表,请参阅this article,我将仅提供一个示例)。

基本上你必须模仿 modernizr 使用的相同技术,通过这段代码你将检查 <input> 类型 file 是否受支持,如果支持,那么你在 Safari 和 iOS 上运行6 或更高。当然,仅仅使用功能你不能确定用户没有使用另一个浏览器(这就是为什么如果你必须检测操作系统版本,我更喜欢用户代理字符串)。如需比较,请参阅this post here on SO

function isNewVersion() {
    var elem = document.createElement("input");
    elem.setAttribute("type", "file");

    return elem.type !== "text";
}

【讨论】:

    【解决方案2】:

    您可以查看FileReader API,当然这也适用于许多现代桌面浏览器(我不确定这是否会给您带来一些问题,但我对此表示怀疑):

    var iOS6 = false;
    if(window.FileReader)
    {
        iOS6 = true;
    }
    

    【讨论】:

    • 这似乎比创建一个元素并检查其属性要好。可以简单写成iOS6 = !!window.FileReader;
    • 这是最初的想法:)
    猜你喜欢
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-11
    • 1970-01-01
    • 2012-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多