Cordova watchPosition不会在手机上重启GPS请求

时间:2015-07-23 18:45:00

标签: android cordova gps geolocation

我正在使用Cordovas Geolocation Plugin。

当手机准备就绪时,watchPosition会启动。如果在启动应用程序之前激活GPS,一切正常。 但如果我之后启动GPS,则watchPosition不会在我的手机上启动GPS请求,因此watchPosition会频繁显示错误消息。

您有什么想法,如何使用GPS请求重新启动watchPosition?

THX

1 个答案:

答案 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();
相关问题