检测设备运动/方向支持



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

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

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

遗憾的是,这篇文章的答案对我的问题不起作用。

  • 检测对给定JavaScript事件的支持?

考虑到你的程序需要有一个加速度计功能来运行,我假设你正在阻止它的执行,如果没有。

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

相关内容

  • 没有找到相关文章

最新更新