Maison > interface Web > js tutoriel > le corps du texte

Détection de visionOS par JavaScript

PHPz
Libérer: 2024-07-28 09:34:03
original
430 Les gens l'ont consulté

Detecting visionOS by JavaScript

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;
}
Copier après la connexion

Panne

La fonction utilise 3 critères.

1. Si la chaîne de l'agent utilisateur contient "(Macintosh;" ou non.

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
Copier après la connexion

En utilisant le code suivant, nous pouvons déterminer si le navigateur est sur macOS, iPadOS ou visionOS.

navigator.userAgent.includes("(Macintosh;")
Copier après la connexion

2. Si le navigateur prend en charge XR ou non.

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
Copier après la connexion

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.

3. Qu'il s'agisse d'un appareil tactile ou non.

Enfin, nous pouvons exclure macOS en utilisant le code suivant.

document.ontouchstart !== undefined
Copier après la connexion
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!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal