2

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

4

2 回答 2

2

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

var iOS6 = false;
if(window.FileReader)
{
    iOS6 = true;
}
于 2012-12-10T12:01:17.160 回答
2

我认为最好的方法始终是解析用户代理字符串,但您可以使用以前不支持的功能检测 iOS 6 引入的 Safari 版本(请参阅本文以获得更完整的列表,我将仅提供一个示例)。

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

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

    return elem.type !== "text";
}
于 2012-12-10T12:01:37.677 回答