自 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 页面,macOS、iPadOS 的 Safari 不支持 XR。不过,visionOS 上的 Safari 支持。
您可以通过以下代码检查是否支持XR:
!!navigator.xr
到目前为止,标准 1 和 2 似乎足以识别visionOS。不过,macOS 上的 Chrome 支持 XR。所以我们需要 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中文网其他相关文章!