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
これまでのところ、visionOS を識別するには基準 No.1 と No.2 で十分のようです。ただし、macOS 上の Chrome は XR をサポートします。したがって、No.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 中国語 Web サイトの他の関連記事を参照してください。