我尝试使用window.ondevicemotion
来检测移动设备的tilt
操作,无论如何,我已将设备放在平坦的桌面上,确保它根本不移动,我的功能只是为了警告一个字符串,即使设备根本没有移动,警报对话框仍然弹出,任何想法为什么会发生这种情况?
编辑:
澄清我的问题,如果设备真的被移动(倾斜,震动等等),我怎样才能检测到运动?
答案 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
}
它很奇怪,但可以通过定位事件检测到实际的设备动作!