"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Détection de visionOS par JavaScript

Détection de visionOS par JavaScript

Publié le 2024-07-30
Parcourir:651

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-ci.

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 suffisent à identifier visionOS. Cependant, Chrome sur macOS prend en charge XR. Nous avons donc besoin du numéro 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 Navigateur Agent utilisateur navigateur.xr Toucher activé
visionOS (2.0) Safari
visionOS (2.0) Firefox (128.3)
Windows 11 Chrome (127.0.6533.72)
Windows 11 Bord (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
Déclaration de sortie Cet article est reproduit sur : https://dev.to/ku6ryo/detecting-visionos-by-javascript-1ei5?1 En cas de violation, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3