Phonegap 重启加速度计
Phonegap restart accelerometer
我在 Phonegap 应用程序中重启加速度计时遇到问题。
我想要实现的是观察加速度。用户移动 smartphone 我想停止观察者,做一些动画等,在 500 毫秒到 1 秒后我想再次启动观察者。
这基本上是加速度计的代码:
watchAcceleration: function() {
this.accelerometerID = navigator.accelerometer.watchAcceleration(
function(acceleration) {
console.log("STARTED WATCH");
// Accelerometer calculations going on here ...
if(this.direction === correctResponse) {
this.restartAcceleration();
}
else {
alert("FAIL");
}
// ... more accelerometer calculations here
}.bind(this),
function(err) {
console.log("error", err)
}
}
重启函数的代码如下:
restartAcceleration: function() {
if(this.accelerometerID) {
navigator.accelerometer.clearWatch(this.accelerometerID);
this.accelerometerID = null;
console.log("WATCH CLEARED");
setTimeout(function() {
this.watchAcceleration();
}.bind(this), 1000);
}
}
我的问题是,当应用程序启动时,加速度计工作正常。当用户正确响应时,将调用 restartAcceleration 函数并清除观察者。在本例中的 1000 毫秒之后,再次调用 watchAcceleration 函数。
我的 phone 是 Nexus 4。
您对如何正确重启加速度计有什么建议吗?
编辑(2016 年 7 月 4 日):
此处提交了一个问题:https://issues.apache.org/jira/browse/CB-11531
看起来这是插件中的错误 - 尝试使用此 PR 分支:
git clone -b CB-11531 https://github.com/daserge/cordova-plugin-device-motion
cd app
cordova plugin rm device-motion
cordova plugin add ../cordova-plugin-device-motion
我在 Phonegap 应用程序中重启加速度计时遇到问题。 我想要实现的是观察加速度。用户移动 smartphone 我想停止观察者,做一些动画等,在 500 毫秒到 1 秒后我想再次启动观察者。
这基本上是加速度计的代码:
watchAcceleration: function() {
this.accelerometerID = navigator.accelerometer.watchAcceleration(
function(acceleration) {
console.log("STARTED WATCH");
// Accelerometer calculations going on here ...
if(this.direction === correctResponse) {
this.restartAcceleration();
}
else {
alert("FAIL");
}
// ... more accelerometer calculations here
}.bind(this),
function(err) {
console.log("error", err)
}
}
重启函数的代码如下:
restartAcceleration: function() {
if(this.accelerometerID) {
navigator.accelerometer.clearWatch(this.accelerometerID);
this.accelerometerID = null;
console.log("WATCH CLEARED");
setTimeout(function() {
this.watchAcceleration();
}.bind(this), 1000);
}
}
我的问题是,当应用程序启动时,加速度计工作正常。当用户正确响应时,将调用 restartAcceleration 函数并清除观察者。在本例中的 1000 毫秒之后,再次调用 watchAcceleration 函数。
我的 phone 是 Nexus 4。 您对如何正确重启加速度计有什么建议吗?
编辑(2016 年 7 月 4 日): 此处提交了一个问题:https://issues.apache.org/jira/browse/CB-11531
看起来这是插件中的错误 - 尝试使用此 PR 分支:
git clone -b CB-11531 https://github.com/daserge/cordova-plugin-device-motion
cd app
cordova plugin rm device-motion
cordova plugin add ../cordova-plugin-device-motion