「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > JavaScriptによるvisionOSの検出

JavaScriptによるvisionOSの検出

2024 年 7 月 30 日に公開
ブラウズ:802

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 ページによると、macOS、iPadOS の Safari は XR をサポートしていません。ただし、visionOS 上の Safari はサポートします。

次のコードで XR がサポートされているかどうかを確認できます:

!!navigator.xr

これまでのところ、visionOS を識別するには基準 No.1 と No.2 で十分のようです。ただし、macOS 上の Chrome は XR をサポートします。したがって、No.3 が必要です。

3. タッチデバイスかどうか。

最後に、次のコードを使用して macOS を除外できます。

document.ontouchstart !== undefined
OS ブラウザ ユーザーエージェント ナビゲーター.xr タッチ有効
ビジョンOS (2.0) サファリ
ビジョンOS (2.0) Firefox (128.3)
Windows 11 クロム (127.0.6533.72)
Windows 11 エッジ (127.0.2651.74)
Android 12 (Pixel 6) クロム (126.0.6478.188)
iOS (18.0) クロム (127.0.6533.77)
iOS (18.0) サファリ
iPadOS (17.5.1) クロム (127.0.6533.77)
iPadOS (17.5.1) サファリ
macOS (Sonoma 14.5) クロム (126.0.6478.114)
macOS (Sonoma 14.5) サファリ
リリースステートメント この記事は次の場所に転載されています: https://dev.to/ku6ryo/detecting-visionos-by-javascript-1ei5?1 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3