Ios PhoneGap navigator.compass.getCurrentHeading在iPhone上多次调用
我将非常感谢任何帮助来解决这个问题——或者至少在哪里寻找解决方法 我在iPhone上调用的是navigator.compass.getCurrentHeading(成功,失败),每次移动设备时都会调用success函数。在XCode调试日志中,我看到为每个动作生成了大量的navigator.compass.setHeading调用条目。如果我再次尝试轮询标题数据,请求就会挂起。代码如下:Ios PhoneGap navigator.compass.getCurrentHeading在iPhone上多次调用,ios,xcode4,cordova,Ios,Xcode4,Cordova,我将非常感谢任何帮助来解决这个问题——或者至少在哪里寻找解决方法 我在iPhone上调用的是navigator.compass.getCurrentHeading(成功,失败),每次移动设备时都会调用success函数。在XCode调试日志中,我看到为每个动作生成了大量的navigator.compass.setHeading调用条目。如果我再次尝试轮询标题数据,请求就会挂起。代码如下: function onBodyLoad() { if (typeof navigator.devic
function onBodyLoad() {
if (typeof navigator.device == "undefined") {
document.addEventListener("deviceready", onDeviceReady, false);
} else {
onDeviceReady();
}
}
function succ(heading) {
alert("compass " + heading);
}
function fail() {
alert('fail');
}
function onDeviceReady() {
navigator.compass.getCurrentHeading(succ, fail);
}
这是一种非常奇怪的行为,因为我希望只调用一次getCurrentHeading并返回一个结果,而不是不可阻挡的事件
我使用PhoneGap 1.0.0。同样的代码在Android上也能完美地工作。我已经删除了所有自定义JS代码,以防止冲突的可能性。奇怪的是,似乎没有其他人会遇到这种情况。在任何情况下,这个(黑客)解决方案可能会帮助任何来寻找答案的人 由于此问题,我们不得不停止使用getCurrentHeading,并将其替换为navigator.compass.watchHeading。在清除手表时,我们还调用navigator.compass.stop()函数以防止进一步的指南针垃圾邮件(仅适用于iPhone平台-Android是可以的),在再次调用watchHeading之前,我们调用navigator.compass.stop()和navigator.compass.start(),以“以防万一”重新初始化指南针(同样,仅适用于iPhone)
在采取这些措施后,用户指南针的页面不再挂在第二个条目上,并且在该页面之外没有标题垃圾邮件。奇怪的是,似乎没有其他人遇到这种情况。在任何情况下,这个(黑客)解决方案可能会帮助任何来寻找答案的人 由于此问题,我们不得不停止使用getCurrentHeading,并将其替换为navigator.compass.watchHeading。在清除手表时,我们还调用navigator.compass.stop()函数以防止进一步的指南针垃圾邮件(仅适用于iPhone平台-Android是可以的),在再次调用watchHeading之前,我们调用navigator.compass.stop()和navigator.compass.start(),以“以防万一”重新初始化指南针(同样,仅适用于iPhone) 采取这些措施后,用户compass的页面不再挂在第二个条目上,并且在该页面之外也没有标题垃圾邮件