与功能检测相反,该问题旨在建立一种方法来确定浏览器是否在 iOS 设备上运行。尽管功能检测很重要,但检测 iOS 设备的必要性源于它们对视频的独特处理,正如相关 Stack Overflow 讨论中所强调的那样。
浏览设备检测领域,我们遇到两种方法:
用户代理嗅探:此方法依赖于检查浏览器的用户代理字符串以识别设备类型。然而,值得注意的是这种方法的潜在陷阱:
功能推断: 此技术利用不同 iOS 版本的已知功能可用性时间表。例如,我们知道:
注意:此方法依赖于这些功能在未来的 iOS 版本中不会被弃用的假设。
要检测 iOS 设备,您可以使用以下方法代码:
function iOS() { return [ 'iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod' ].includes(navigator.platform) // iPad on iOS 13 detection || (navigator.userAgent.includes("Mac") && "ontouchend" in document); }
要检测 iOS 版本,您可以使用以下代码(但要注意其限制):
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中文网其他相关文章!