即使设备没有移动,移动窗口.ondevicemotion也会触发

时间:2014-04-23 17:35:14

标签: javascript jquery html5

我尝试使用window.ondevicemotion来检测移动设备的tilt操作,无论如何,我已将设备放在平坦的桌面上,确保它根本不移动,我的功能只是为了警告一个字符串,即使设备根本没有移动,警报对话框仍然弹出,任何想法为什么会发生这种情况?

编辑:

澄清我的问题,如果设备真的被移动(倾斜,震动等等),我怎样才能检测到运动?

3 个答案:

答案 0 :(得分:0)

可能的情况是,该设备几乎总是发射ondevicemotion事件,即使肉眼难以察觉。

如果达到某个加速度或音高阈值,您可能只想尝试显示警告。

答案 1 :(得分:0)

ondevicemotion将持续触发,类似于onScroll。完成警报后,后续警报将排队并继续显示。

答案 2 :(得分:0)

以防万一有人在寻找这个问题的答案,我不知道alpha,beta和gamma,在我提出这个问题之前,可以在这里找到更多信息:

https://developer.mozilla.org/en-US/docs/WebAPI/Detecting_device_orientation

https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Orientation_and_motion_data_explained

window.addEventListener("deviceorientation", handleOrientation, true);

function handleOrientation(event) {
  var absolute = event.absolute;
  var alpha    = event.alpha;
  var beta     = event.beta;
  var gamma    = event.gamma;

  // Do stuff with the new orientation data
}

它很奇怪,但可以通过定位事件检测到实际的设备动作!