【发布时间】:2011-08-23 16:01:08
【问题描述】:
我将不胜感激任何帮助解决这个问题 - 或者至少在哪里寻找解决它。
我在 iPhone 上调用 navigator.compass.getCurrentHeading(succ, fail),每次设备稍微移动时都会调用成功函数。在 XCode 调试日志中,我看到为每个动作生成了许多 navigator.compass.setHeading 调用条目。如果我再次尝试轮询航向数据 - 请求就会挂起。代码如下:
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 代码以防止发生冲突。
【问题讨论】: