我正在寻找一种方法来检查设备是否支持DeviceOrientationEvent或DeviceMotionEvent。 更准确地说,我不想知道设备是否真的有加速度计。检测设备运动/方向支持?
不幸的是window.DeviceMotionEvent
和window.ondevicemotion
分别window.DeviceOrientationEvent
和window.ondeviceorientation
存在虽然设备 - 的MacBook视网膜 - 没有加速度计。
我很清楚,如果Event从未被触发,eventlistener的回调函数也将永远不会运行。但就我而言,我的程序需要知道设备是否有加速度计,因为如果没有加速度计,用户应该会收到通知。
这篇文章的答案不幸的是没有为我的问题工作。
我不知道'ondevicemotion'事件如何精确的,但它是可以接受的监听事件,如果是内没有接收到这样的事件,比方说,5秒,然后将设备是搁在一桌子上,有人用铁把握着,还是没有加速度计? –
你说得对。这是一种可能的方式,我也想到了。这个解决方案有问题,我必须等待一段时间(只有一点点,因为'devicemotion'经常触发)来检查答案。在我的情况下,我真的需要从一开始就知道设备是否有加速度计,因为如果设备没有加速度计,用户会被转发到另一页... –