【发布时间】:2014-05-15 16:22:07
【问题描述】:
我正在寻找一种方法来检查设备是否支持 DeviceOrientationEvent 或 DeviceMotionEvent。 更准确地说,我不知道设备是否真的有加速度计。
不幸的是 window.DeviceMotionEvent 和 window.ondevicemotion 分别存在 window.DeviceOrientationEvent 和 window.ondeviceorientation 尽管设备 - MacBook Retina - 没有加速度计。
我很清楚,如果事件从未被触发,事件监听器的回调函数也将永远不会运行。但就我而言,我的程序需要知道设备是否有加速度计,因为如果没有加速度计,用户应该会收到通知。
不幸的是,这篇文章的答案并没有解决我的问题。
【问题讨论】:
-
我不知道
ondevicemotion事件有多精确,但是监听事件是否可以接受,如果在5秒内没有收到这样的事件,那么设备是放在桌子上,由铁把手握住,还是没有加速度计? -
你是对的。这是一种可能的方式,我也想过。这个解决方案有一个问题,我必须等待一段时间(只有一点点,因为
devicemotion经常触发)才能得到这个检查的答案。在我的情况下,我真的需要从一开始就知道设备是否有加速度计,因为如果设备没有加速度计,用户将被转发到另一个页面......
标签: javascript accelerometer event-listener device-orientation devicemotion