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

时间:2014-05-15 16:22:08

标签: javascript accelerometer event-listener device-orientation devicemotion

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

不幸的是window.DeviceMotionEventwindow.ondevicemotion分别存在window.DeviceOrientationEventwindow.ondeviceorientation,尽管设备 - MacBook Retina - 没有加速计。

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

不幸的是,这篇文章的答案并不能解决我的问题。

1 个答案:

答案 0 :(得分:3)

鉴于你的程序需要加速计功能才能运行,我假设你没有阻止它的执行。

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