我正在开发一个带有phonegap的简单应用程序,每30秒通过ajax调用将用户当前坐标发送到我的数据库。它工作得很好
$(document).ready(function() {
setInterval(function() {
SetLocationUpdates();
}, 30000);
});
但是如果用户导航到另一个应用(谷歌地图应用)或者我使用此代码打开谷歌地图应用
<div><a href="geo:41.897096,27.036545">Open maps app</div>
它(通过ajax将坐标发送到我的数据库)失败,因为getCurrentPosition不起作用,也许谷歌地图锁定它我的应用程序仍在工作(我的应用程序和谷歌地图应用程序单独工作。两个应用程序同时工作。也许我的应用程序去背景)
更具体地说,它什么也没做。
navigator.geolocation.getCurrentPosition(SetLocationUpdates, onError);
此行未执行。 永远不会调用成功或错误回调,设置超时不会影响这一点。我正在使用Phonegap Build从html和javascript编译应用程序。 我该怎么办?
答案 0 :(得分:2)
您需要一个原生背景地理定位解决方案 - 当您的应用进入后台时,主线程上的JS执行会暂停。
根据我的经验,最具弹性的解决方案是cordova-background-geolocation-lt。我已经在多个操作系统版本上进行了测试,包括Android 8和iOS 11,这在所有版本上都是一致的。
答案 1 :(得分:1)