」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 透過JavaScript檢測visionOS

透過JavaScript檢測visionOS

發佈於2024-07-30
瀏覽:538

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。所以我們需要No.3。

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) 蘋果瀏覽器
版本聲明 本文轉載於:https://dev.to/ku6ryo/detecting-visionos-by-javascript-1ei5?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3