0

我的 phonegap 应用程序中有此代码

var options = {timeout: 180000 };
navigator.geolocation.watchPosition(onSuccess, onError, options);

应该是,它会每 3 分钟发射一次,但问题是它每 1 秒或每 5 秒发射一次。简而言之,时间间隔没有一致性。还有其他方法可以在确切的时间间隔内获得结果吗?如果我在后台模式下运行它,有没有办法使用这个间隔继续跟踪位置。谢谢你。

4

1 回答 1

0

Timeout 只是设置允许从调用获取当前位置到返回它的时间的最长时间。这不会影响它发送当前位置的频率,但会在超时(在您的情况下为 3 分钟)内无法获得位置时触发 onError。

http://docs.phonegap.com/en/3.0.0/cordova_geolocation_geolocation.md.html#geolocationOptions

至于后台模式,可以在 Android 和 iPhone 上使用。在 Android 上,这似乎是默认行为。对于 iPhone,在 Xcode 中转到 Targets -> Info -> Right click to add row。选择“必需的后台模式”,单击 + 号,然后为值选择“应用程序注册位置更新”。

编辑:如果您真的打算每 3 分钟检查一次地理位置(并且不如 GPS 响应的那么快),我建议编写一个使用 setInterval() 调用 geolocation.getCurrentPosition 而不是使用 watchPosition 的函数。

于 2013-08-15T00:16:58.937 回答