Maison >interface Web >js tutoriel >Détection de visionOS par JavaScript

Détection de visionOS par JavaScript

PHPz
PHPzoriginal
2024-07-28 09:34:03514parcourir

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;
}

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

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

navigator.userAgent.includes("(Macintosh;")

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

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
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!

Déclaration:
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