如何在 A-Frame 中检测桌面、移动设备、GearVR、Oculus Rift 和 Vive?
How to detect Desktop vs. Mobile vs. GearVR vs. Oculus Rift vs. Vive in A-Frame?
在 A-Frame 中,我想检测用户是否连接了 VR 耳机并判断他们使用的是哪个设备。我该怎么做?
- 台式机(无 VR 显示器)
- 移动设备(例如,webvr-polyfilled Google Cardboard,iPhone,Android)
- 三星 GearVR
- Oculus Rift
- HTC 万岁
我们可以使用 A-Frame 中的几个实用函数来检测兼容性:https://aframe.io/docs/master/core/utils.html
手机相关的实用工具看navigator.userAgent
。 VR 相关的实用程序检查从 headset/polyfill 返回的姿势数据是否不是 0,0,0.
鉴于当前 API:
- 桌面:
!AFRAME.utils.checkHeadsetConnected()
- 手机:
AFRAME.utils.isMobile()
- GearVR:
AFRAME.utils.isGearVR()
- Oculus Rift:
!AFRAME.utils.isMobile() && AFRAME.utils.checkHeadsetConnected()
- HTC Vive:
!AFRAME.utils.isMobile() && AFRAME.utils.checkHeadsetConnected()
要区分 Rift 与 Vive,请尝试使用 WebVR API 舞台参数 https://w3c.github.io/webvr/#interface-vrstageparameters
在 A-Frame 中,我想检测用户是否连接了 VR 耳机并判断他们使用的是哪个设备。我该怎么做?
- 台式机(无 VR 显示器)
- 移动设备(例如,webvr-polyfilled Google Cardboard,iPhone,Android)
- 三星 GearVR
- Oculus Rift
- HTC 万岁
我们可以使用 A-Frame 中的几个实用函数来检测兼容性:https://aframe.io/docs/master/core/utils.html
手机相关的实用工具看navigator.userAgent
。 VR 相关的实用程序检查从 headset/polyfill 返回的姿势数据是否不是 0,0,0.
鉴于当前 API:
- 桌面:
!AFRAME.utils.checkHeadsetConnected()
- 手机:
AFRAME.utils.isMobile()
- GearVR:
AFRAME.utils.isGearVR()
- Oculus Rift:
!AFRAME.utils.isMobile() && AFRAME.utils.checkHeadsetConnected()
- HTC Vive:
!AFRAME.utils.isMobile() && AFRAME.utils.checkHeadsetConnected()
要区分 Rift 与 Vive,请尝试使用 WebVR API 舞台参数 https://w3c.github.io/webvr/#interface-vrstageparameters