Я был бы признателен за любую помощь в решении этой проблемы - или, по крайней мере, где искать решение этой проблемы.
То, что у меня есть, вызывает на 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, чтобы предотвратить возможность конфликтов.