我正在使用Cordovas Geolocation Plugin。
当手机准备就绪时,watchPosition会启动。如果在启动应用程序之前激活GPS,一切正常。 但如果我之后启动GPS,则watchPosition不会在我的手机上启动GPS请求,因此watchPosition会频繁显示错误消息。
您有什么想法,如何使用GPS请求重新启动watchPosition?
THX
答案 0 :(得分:1)
我发现清除现有观察者然后重新添加新观察者可以在Android上解决此问题;像这样的东西:
var MAX_POSITION_ERRORS_BEFORE_RESET = 3,
positionWatchId = null,
watchpositionErrorCount = 0;
function addWatch(){
positionWatchId = navigator.geolocation.watchPosition(onWatchPositionSuccess, onWatchPositionError, options);
}
function clearWatch(){
navigator.geolocation.clearWatch(positionWatchId);
}
function onWatchPositionError(err) {
watchpositionErrorCount++;
if (watchpositionErrorCount >= MAX_POSITION_ERRORS_BEFORE_RESET) {
clearWatch();
addWatch();
watchpositionErrorCount = 0;
}
}
addWatch();