首页 >web前端 >js教程 >如何可靠地检测设备是否运行 iOS?

如何可靠地检测设备是否运行 iOS?

Barbara Streisand
Barbara Streisand原创
2024-12-21 12:37:09904浏览

How Can I Reliably Detect if a Device is Running iOS?

我可以检测设备是否在 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn