自 2024 年 7 月起,您可以使用以下代码来确定浏览器是否在 VisionOS 上。 (这不识别浏览器品牌;我只检查了主要浏览器。)
function isVisionOS () { return navigator.userAgent.includes("(Macintosh;") && !!navigator.xr && document.ontouchstart !== undefined; }
该函数使用 3 个条件。
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;")
根据 MDN 页面,Safari for macOS、iPadOS 不支持 XR。不过,visionOS 上的 Safari 支持。
您可以通过以下代码检查是否支持XR:
!!navigator.xr
到目前为止,标准 1 和 2 似乎足以识别visionOS。不过,macOS 上的 Chrome 支持 XR。所以我们需要No.3。
最后,我们可以使用以下代码排除 macOS。
document.ontouchstart !== undefined
操作系统 | 浏览器 | 用户代理 | navigator.xr | 触摸启用 |
---|---|---|---|---|
visionOS (2.0) | 苹果浏览器 | ✅ | ✅ | ✅ |
visionOS (2.0) | 火狐 (128.3) | ✅ | ✅ | ✅ |
Windows 11 | Chrome (127.0.6533.72) | ❌ | ✅ | ❌ |
Windows 11 | 边缘(127.0.2651.74) | ❌ | ✅ | ❌ |
Android 12 (Pixel 6) | Chrome (126.0.6478.188) | ❌ | ✅ | ✅ |
iOS (18.0) | Chrome (127.0.6533.77) | ❌ | ❌ | ✅ |
iOS (18.0) | 苹果浏览器 | ❌ | ❌ | ✅ |
iPadOS (17.5.1) | Chrome (127.0.6533.77) | ✅ | ❌ | ✅ |
iPadOS (17.5.1) | 苹果浏览器 | ✅ | ❌ | ✅ |
macOS (索诺玛 14.5) | Chrome (126.0.6478.114) | ✅ | ✅ | ❌ |
macOS (索诺玛 14.5) | 苹果浏览器 | ✅ | ❌ | ❌ |
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3