我一直在尝试使用Cordova的Accelerometer插件,并且有一个问题,到目前为止我一直无法修复Android。在motionID
方法中使用clearWatch
来暂停watchAcceleration
。
可在此处找到更多信息cordova-plugin-device-motion docs
var motionID = null;
function startAccelerometer() {
var refreshRate = {
frequency: 50
};
motionID = navigator.accelerometer.watchAcceleration(
gotMotion, onMotionError, refreshRate);
}
然后使用clearWatch()
函数停止它,我打电话
function stopAcclererometer() {
navigator.accelerometer.clearWatch(motionID);
$("#acclData").empty();
}
问题似乎是clearWatch
如果多次调用startAccelerometer()
,或者在没有先清除它的情况下创建新的motionID
,则不会清除motionID。
非常感谢任何帮助。
答案 0 :(得分:0)
这是一个相当简单的修复,但我仍然想知道是否有更清洁的方法来解决问题。我设法通过在混合中附加一个简单的计数来解决它,如果已达到条件则退出,即按下Start,然后在Stopped时清除计数。
if (count > 0) {
return;
} else if (count === 0) {
startAccelerometer();
}
});