检测设备运动/方向支持?

Tho*_*nig 7 javascript accelerometer event-listener device-orientation devicemotion

我正在寻找一种方法来检查设备是否支持DeviceOrientationEvent或DeviceMotionEvent.更确切地说,我不知道该设备是否真的有加速度计.

遗憾的是window.DeviceMotionEvent,并window.ondevicemotion分别window.DeviceOrientationEventwindow.ondeviceorientation存在,虽然设备-的MacBook视网膜-没有加速度计.

我很清楚,如果事件永远不会被触发,事件监视器的回调函数也将永远不会运行.但在我的情况下,我的程序需要知道设备是否有加速度计,因为如果没有加速度计,用户应该收到通知.

不幸的是,这篇文章的答案对我的问题不起作用.

Pru*_*rus 2

考虑到您的程序需要具有加速计功能才能运行,我假设如果没有加速计功能,您将阻止其执行。

因此,您的程序默认情况下可以“阻止”,并侦听单个 deviceMotionEvent,该事件将初始化整个程序,最终将绑定到 window.ondevicemotion。这样你就不需要用 setTimeout 来阻止执行;deviceMotionEvent 可能会在窗口加载后很快被触发。