【发布时间】:2015-06-22 20:40:28
【问题描述】:
在使用 Apache Cordova 的 cordova-plugin-geolocation 时,特别是使用 watchPosition() 时,我至少在 iOS 8.1.3 到 8.3 上遇到了困难。正在发生的事情是,当用户移动时,坐标工作得很好并且不断更新。但是,当用户停止片刻(例如设置的超时)时,会引发超时错误。用户再次移动的第二个坐标正在工作。
我们不能将超时时间增加太多,因为担心用户会合法地失去接收并不得不重新重新记录他们的字段边界(农业应用程序)。也就是说,我们将超时增加到 65000 并且仍然设法获得超时消息。
我目前的工作理论是,无论出于何种原因,如果没有检测到移动,那么插件就会抛出超时消息,而不是可能一遍又一遍地给我相同的坐标。我不确定这可能是某种节电功能还是 iOS 和/或插件的实际错误。
geoWatch = window.navigator.geolocation.watchPosition(
gpsChangeCoordinates,
function(error){
$("#signal").html("Error: "+error.message);
$("#signal").css("background-color","red");
},
{maximumAge:3000, timeout:15000, enableHighAccuracy:true});
);
切换到 getCurrentPosition() 也是无效的,因为除非不断轮询 GPS,否则精度不会达到并保持在农业用途所需的水平。
Android 上不会出现此问题。
【问题讨论】:
标签: ios cordova geolocation cordova-plugins