Depuis juillet 2024, vous pouvez utiliser le code suivant pour déterminer si un navigateur est sur visionOS ou non. (Cela n'identifie pas les marques de navigateurs ; j'ai uniquement vérifié les principaux navigateurs.)
function isVisionOS () { return navigator.userAgent.includes("(Macintosh;") && !!navigator.xr && document.ontouchstart !== undefined; }
La fonction utilise 3 critères.
Safari sur macOS, iPadOS, visionOS a des agents utilisateurs comme ceux qui suivent.
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
En utilisant le code suivant, nous pouvons déterminer si le navigateur est sur macOS, iPadOS ou visionOS.
navigator.userAgent.includes("(Macintosh;")
Selon la page MDN, Safari pour macOS, iPadOS ne prend pas en charge XR. Cependant, Safari sur visionOS prend en charge.
Vous pouvez vérifier si XR est pris en charge avec le code suivant :
!!navigator.xr
Jusqu'à présent, il semble que les critères n°1 et n°2 soient suffisants pour identifier visionOS. Cependant, Chrome sur macOS prend en charge XR. Il nous faut donc le n°3.
Enfin, nous pouvons exclure macOS en utilisant le code suivant.
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 | ✅ | ❌ | ❌ |
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!