我可以检测设备是否在 iOS 上运行吗?
简介
虽然功能检测通常优于设备检测,可能存在需要确定设备是否正在运行的情况iOS.
检测方法
用户代理嗅探(不推荐):
警告:用户代理嗅探可能不可靠并且容易受到操纵。但是,出于遗留目的,您可以使用以下代码来检查用户代理字符串中的 iOS:
var iOS = !window.MSStream && /iPad|iPhone|iPod/.test(navigator.userAgent);
平台检测:
更强大的方法涉及使用 navigator.platform 验证设备平台:
function iOS() { return [ 'iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod' ].includes(navigator.platform) || (navigator.userAgent.includes("Mac") && "ontouchend" in document); }
此方法也适用于 iOS 13 上的 iPad 设备,其中用户代理字符串与 MacOS 相同。
推断 iOS 版本:
虽然用户代理字符串可用于推断 iOS 版本,但值得注意的是,这由于未来可能会被弃用,该方法不可靠。作为替代方案,您可以针对 iOS 引入的 API 使用历史记录检查来推断操作系统版本。然而,这种方法在可靠性方面也有其局限性。
function iOSversion() { if (iOS()) { if (window.indexedDB) { return 'iOS 8 and up'; } if (window.SpeechSynthesisUtterance) { return 'iOS 7'; } if (window.webkitAudioContext) { return 'iOS 6'; } if (window.matchMedia) { return 'iOS 5'; } if (window.history && 'pushState' in window.history) { return 'iOS 4'; } return 'iOS 3 or earlier'; } return 'Not an iOS device'; }
以上是如何可靠地检测设备是否运行 iOS?的详细内容。更多信息请关注PHP中文网其他相关文章!