"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > JavaScript로 VisionOS 감지

JavaScript로 VisionOS 감지

2024-07-30에 게시됨
검색:812

Detecting visionOS by JavaScript

2024년 7월부터 다음 코드를 사용하여 브라우저가 VisionOS에 있는지 여부를 확인할 수 있습니다. (브라우저 브랜드는 식별하지 않으며, 주요 브라우저만 확인했습니다.)

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

고장

이 기능은 3가지 기준을 사용하고 있습니다.

1. 사용자 에이전트 문자열에 "(Macintosh;"가 포함되어 있는지 여부.

macOS, iPadOS, VisionOS의 Safari에는 다음과 같은 사용자 에이전트가 있습니다.

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

다음 코드를 사용하면 브라우저가 macOS, iPadOS 또는 VisionOS에 있는지 확인할 수 있습니다.

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

2. 브라우저가 XR을 지원하는지 여부.

MDN 페이지에 따르면 macOS, iPadOS용 Safari는 XR을 지원하지 않습니다. 하지만 VisionOS의 Safari는 지원합니다.

다음 코드를 사용하여 XR이 지원되는지 확인할 수 있습니다.

!!navigator.xr

지금까지는 1번과 2번 기준만으로도 VisionOS를 식별하기에 충분해 보입니다. 그러나 macOS의 Chrome은 XR을 지원합니다. 그래서 No.3이 필요합니다.

3. 터치기기인지 아닌지.

마지막으로 다음 코드를 사용하여 macOS를 제외할 수 있습니다.

document.ontouchstart !== undefined
OS 브라우저 사용자 에이전트 navigator.xr 터치 활성화됨
비전OS(2.0) 원정 여행
비전OS(2.0) 파이어폭스(128.3)
윈도우 11 크롬(127.0.6533.72)
윈도우 11 엣지(127.0.2651.74)
Android 12(Pixel 6) 크롬(126.0.6478.188)
iOS(18.0) 크롬(127.0.6533.77)
iOS(18.0) 원정 여행
iPadOS(17.5.1) 크롬(127.0.6533.77)
iPadOS(17.5.1) 원정 여행
macOS(Sonoma 14.5) 크롬(126.0.6478.114)
macOS(Sonoma 14.5) 원정 여행
릴리스 선언문 이 글은 https://dev.to/ku6ryo/Detecting-visionos-by-javascript-1ei5?1에서 복제됩니다.1 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3