"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Detectando visionOS por JavaScript

Detectando visionOS por JavaScript

Publicado em 30/07/2024
Navegar:284

Detecting visionOS by JavaScript

A partir de julho de 2024, você pode usar o código a seguir para determinar se um navegador está no visionOS ou não. (Isso não identifica marcas de navegadores; verifiquei apenas os principais navegadores.)

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

Discriminação

A função está usando 3 critérios.

1. Se a string do agente do usuário contém "(Macintosh;" ou não.

Safari no macOS, iPadOS, visionOS tem agentes de usuário como os seguintes.

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

Usando o código a seguir, podemos determinar se o navegador está no macOS, iPadOS ou visionOS.

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

2. Se o navegador suporta XR ou não.

De acordo com a página MDN, Safari para macOS, iPadOS não oferece suporte a XR. No entanto, o Safari no visionOS suporta.

Você pode verificar se XR é compatível com o seguinte código:

!!navigator.xr

Até agora, parece que os critérios nº 1 e nº 2 são suficientes para identificar o visionOS. No entanto, o Chrome no macOS oferece suporte a XR. Portanto, precisamos do número 3.

3. Se é um dispositivo de toque ou não.

Finalmente, podemos excluir o macOS usando o seguinte código.

document.ontouchstart !== undefined
SO Navegador Agente de usuário navigator.xr Toque ativado
visionOS (2.0) Safári
visionOS (2.0) Firefox (128.3)
Windows 11 Chrome (127.0.6533.72)
Windows 11 Borda (127.0.2651.74)
Android 12 (Pixel 6) Chrome (126.0.6478.188)
iOS (18.0) Chrome (127.0.6533.77)
iOS (18.0) Safári
iPadOS (17.5.1) Chrome (127.0.6533.77)
iPadOS (17.5.1) Safári
macOS (Sonoma 14.5) Chrome (126.0.6478.114)
macOS (Sonoma 14.5) Safári
Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/ku6ryo/detecting-visionos-by-javascript-1ei5?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3