首頁 >web前端 >js教程 >透過JavaScript檢測visionOS

透過JavaScript檢測visionOS

PHPz
PHPz原創
2024-07-28 09:34:03440瀏覽

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 頁面,Safari for macOS、iPadOS 不支援 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