geolocation.watchPosition在发生错误后停止触发

时间:2014-11-25 20:28:57

标签: cordova

在Cordova 3.6上,使用IOS SDK 8.1,我观察到在调用geolocation.watchPosition之后,我可能会得到1-2个geolocationSuccess结果,或者geolocationError(kCLErrorDomain错误0或超时)。如果我得到1-2个成功结果,那么在错误超时之前不会再发生任何其他事情。错误发生后,没有其他任何事情再次发生。如果我再次调用clearWatch和watchPosition,则重复该过程。

这里发生了什么?我希望继续定期进行geolocationSuccess调用,如果存在geolocationError,那么我至少应该继续获得成功或失败的更新。为什么事件发生停止,我必须通过创建一个新手表来重置它?通过使用我自己的计时器定期调用geolocation.getCurrentPosition,我实际上得到了最好的结果。

我在调试器中注意到,在调用watchPosition之后,位置管理器委托正在记录“locationManager :: didFailWithError(null)”,即使我稍后获得geolocationSuccess。

这种情况发生在运行iOS 8.1的iPhone 6以及运行iOS 6的iPod Touch 4上。

相关代码很简单:

var geoWatchID = navigator.geolocation.watchPosition(geolocationSuccess,
    geolocationError, {
        maximumAge: 5000,
        timeout: 60000,
        enableHighAccuracy: true
    });

0 个答案:

没有答案
相关问题