"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Detectando visionOS por JavaScript

Detectando visionOS por JavaScript

Publicado el 2024-07-30
Navegar:921

Detecting visionOS by JavaScript

A partir de julio de 2024, puede utilizar el siguiente código para determinar si un navegador está en visionOS o no. (Esto no identifica las marcas de navegadores; solo revisé los principales navegadores).

function isVisionOS () {
  return navigator.userAgent.includes("(Macintosh;") &&
    !!navigator.xr &&
    document.ontouchstart !== undefined;
}

Descomponer

La función utiliza 3 criterios.

1. Si la cadena del agente de usuario contiene "(Macintosh;" o no.

Safari en macOS, iPadOS y visionOS tiene agentes de usuario como los siguientes.

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

Al usar el siguiente código, podemos determinar si el navegador está en macOS, iPadOS o visionOS.

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

2. Si el navegador admite XR o no.

Según la página de MDN, Safari para macOS, iPadOS no es compatible con XR. Sin embargo, Safari en visionOS es compatible.

Puedes comprobar si XR es compatible con el siguiente código:

!!navigator.xr

Hasta ahora, parece que los criterios número 1 y 2 son suficientes para identificar visionOS. Sin embargo, Chrome en macOS es compatible con XR. Entonces necesitamos el número 3.

3. Si es un dispositivo táctil o no.

Finalmente, podemos excluir macOS usando el siguiente código.

document.ontouchstart !== undefined
SO Navegador Agente de usuario navegador.xr Toque habilitado
visionOS (2.0) Safari
visionOS (2.0) Firefox (128.3)
Windows 11 Cromo (127.0.6533.72)
Windows 11 Borde (127.0.2651.74)
Android 12 (Píxel 6) Cromo (126.0.6478.188)
iOS (18.0) Cromo (127.0.6533.77)
iOS (18.0) Safari
iPadOS (17.5.1) Cromo (127.0.6533.77)
iPadOS (17.5.1) Safari
macOS (Sonoma 14.5) Cromo (126.0.6478.114)
macOS (Sonoma 14.5) Safari
Declaración de liberación Este artículo se reproduce en: https://dev.to/ku6ryo/detecting-visionos-by-javascript-1ei5?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3