Apache Cordova geolocation.watchPosition () atinge o tempo limite no iOS quando está parado

Ao utilizar a geolocalização do plug-in-cordova do Apache Cordova, especificamente com watchPosition (), encontro dificuldades pelo menos no iOS 8.1.3 a 8.3. O que está acontecendo é que, quando um usuário está em movimento, as coordenadas funcionam muito bem e são atualizadas continuamente. No entanto, quando o usuário para por alguns momentos (digamos o tempo limite definido), um erro de tempo limite é gerado. No segundo em que o usuário se move novamente, as coordenadas estão funcionando.

Não podemos aumentar muito o tempo limite com medo de que os usuários percam legitimamente a recepção e tenham que registrar novamente seus limites de campo (aplicativo agrícola) novamente. Dito isso, aumentamos o tempo limite para 65000 e ainda conseguimos receber a mensagem de tempo limite.

Minha teoria de trabalho atual é que, por qualquer motivo, se nenhum movimento for detectado, o plug-in está lançando uma mensagem de tempo limite em vez de potencialmente me fornecer as mesmas coordenadas repetidas vezes. Não tenho certeza se isso pode ser algum tipo de funcionalidade de economia de bateria ou um bug real no iOS e / ou no plug-in.

geoWatch = window.navigator.geolocation.watchPosition(
    gpsChangeCoordinates,
    function(error){
        $("#signal").html("Error: "+error.message);
        $("#signal").css("background-color","red");
    },
    {maximumAge:3000, timeout:15000, enableHighAccuracy:true});
);

Uma mudança para getCurrentPosition () também não é válida porque, a menos que o GPS esteja sendo pesquisado continuamente, a precisão não atinge e permanece nos níveis necessários para fins agrícolas.

Este problema não aparece no Android.

questionAnswers(1)

yourAnswerToTheQuestion