>  기사  >  웹 프론트엔드  >  JavaScript로 VisionOS 감지

JavaScript로 VisionOS 감지

PHPz
PHPz원래의
2024-07-28 09:34:03408검색

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

위 내용은 JavaScript로 VisionOS 감지의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.