Mulai Julai 2024, anda boleh menggunakan kod berikut untuk menentukan sama ada penyemak imbas menggunakan visionOS atau tidak. (Ini tidak mengenal pasti jenama penyemak imbas; saya hanya menyemak pelayar utama.)
function isVisionOS () { return navigator.userAgent.includes("(Macintosh;") && !!navigator.xr && document.ontouchstart !== undefined; }
Fungsi ini menggunakan 3 kriteria.
Safari pada macOS, iPadOS, visionOS mempunyai ejen pengguna seperti mengikuti.
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
Dengan menggunakan kod berikut, kami boleh menentukan sama ada penyemak imbas menggunakan macOS, iPadOS atau visionOS.
navigator.userAgent.includes("(Macintosh;")
Menurut halaman MDN, Safari untuk macOS, iPadOS tidak menyokong XR. Walau bagaimanapun, Safari pada visionOS menyokong.
Anda boleh menyemak sama ada XR disokong dengan kod berikut:
!!navigator.xr
Setakat ini, nampaknya kriteria No.1 dan No.2 sudah cukup untuk mengenal pasti visionOS. Walau bagaimanapun, Chrome pada macOS menyokong XR. Jadi kita perlukan No.3.
Akhir sekali, kami boleh mengecualikan macOS dengan menggunakan kod berikut.
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 | ✅ | ❌ | ❌ |
Atas ialah kandungan terperinci Mengesan visionOS melalui JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!