我在我的phonegap应用程序中有这段代码
var options = {timeout: 180000 };
navigator.geolocation.watchPosition(onSuccess, onError, options);
应该是,它会发射3分钟,但问题是它每1秒或每5秒发射一次。简而言之,时间间隔没有一致性。还有其他方法可以在精确的时间间隔内得到结果吗?如果我在后台模式下运行它,是否有办法使用此间隔继续跟踪位置。谢谢。
答案 0 :(得分:0)
超时只是设置允许从调用传递到当前位置的最大时间到返回的时间。这不会影响它发送当前位置的频率,但是当它无法在超时(在你的情况下为3分钟)内获得一个位置时触发错误。
http://docs.phonegap.com/en/3.0.0/cordova_geolocation_geolocation.md.html#geolocationOptions
至于背景模式,可以在Android和iPhone上使用。在Android上,这似乎是默认行为。对于iPhone,在Xcode中转到目标 - >信息 - >右键单击以添加行。选择“所需的背景模式”,然后单击+号,对于值,选择“应用寄存器进行位置更新。”
编辑:如果你真的开始每3分钟检查一次地理位置(而不是像GPS响应那么快),我建议编写一个使用setInterval()来调用geolocation.getCurrentPosition而不是使用watchPosition的函数。