首页  >  文章  >  web前端  >  通过JavaScript检测visionOS

通过JavaScript检测visionOS

PHPz
PHPz原创
2024-07-28 09:34:03411浏览

Detecting visionOS by JavaScript

自 2024 年 7 月起,您可以使用以下代码来确定浏览器是否在 VisionOS 上。 (这不识别浏览器品牌;我只检查了主要浏览器。)

function isVisionOS () {
  return navigator.userAgent.includes("(Macintosh;") &&
    !!navigator.xr &&
    document.ontouchstart !== undefined;
}

分解

该函数使用 3 个标准。

1. 用户代理字符串是否包含“(Macintosh;”。

macOS、iPadOS、visionOS 上的 Safari 具有如下用户代理。

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Safari/605.1.15

通过使用以下代码,我们可以确定浏览器是否在 macOS、iPadOS 或 VisionOS 上。

navigator.userAgent.includes("(Macintosh;")

2.浏览器是否支持XR。

根据 MDN 页面,macOS、iPadOS 的 Safari 不支持 XR。不过,visionOS 上的 Safari 支持。

您可以通过以下代码检查是否支持XR:

!!navigator.xr

到目前为止,标准 1 和 2 似乎足以识别visionOS。不过,macOS 上的 Chrome 支持 XR。所以我们需要 3 号。

3、是否是触摸设备。

最后,我们可以使用以下代码排除 macOS。

document.ontouchstart !== undefined
OS Browser UserAgent navigator.xr Touch enabled
visionOS (2.0) Safari
visionOS (2.0) Firefox (128.3)
Windows 11 Chrome (127.0.6533.72)
Windows 11 Edge (127.0.2651.74)
Android 12 (Pixel 6) Chrome (126.0.6478.188)
iOS (18.0) Chrome (127.0.6533.77)
iOS (18.0) Safari
iPadOS (17.5.1) Chrome (127.0.6533.77)
iPadOS (17.5.1) Safari
macOS (Sonoma 14.5) Chrome (126.0.6478.114)
macOS (Sonoma 14.5) Safari

以上是通过JavaScript检测visionOS的详细内容。更多信息请关注PHP中文网其他相关文章!

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