如果应用程序发送到后台,则地理定位失败
Geolocation fails if app sent to background
我正在开发一个带有 phonegap 的简单应用程序,它每 30 秒通过 ajax 将用户当前坐标发送到我的数据库 call.It 效果很好
$(document).ready(function() {
setInterval(function() {
SetLocationUpdates();
}, 30000);
});
但是如果用户导航到另一个应用程序(google 地图应用程序)或者如果我使用此代码打开 google 地图应用程序
<div><a href="geo:41.897096,27.036545">Open maps app</div>
它(通过 ajax 将坐标发送到我的数据库)失败,因为 getCurrentPosition 不工作也许 google 地图锁定它虽然我的应用程序仍然工作(我的应用程序和 google 地图应用工作 separately.Two 应用同时工作 time.Maybe 我的应用进入后台)
更具体地说,它什么都不做。
navigator.geolocation.getCurrentPosition(SetLocationUpdates, onError);
这行不执行。
永远不会调用成功或错误回调,设置超时不会影响这一点。我正在使用 Phonegap Build 从 html 和 javascript 编译应用程序。
我该怎么办?
您需要一个原生的后台地理定位解决方案 - 当您的应用程序进入后台时,主线程上的 JS 执行会暂停。
根据我的经验,最具弹性的解决方案是 cordova-background-geolocation-lt。我已经在多个 OS 版本上进行了测试,包括 Android 8 和 iOS 11,这对所有版本都有效。
请注意,当 phone 处于睡眠状态或应用程序处于后台时,Firefox 当前会继续工作。 (我相信这是一个错误)
恕我直言,最合适且电池友好的解决方案依赖于 ServiceWorkers 从 TravelManager 接收和操作 TravelEvents。
查看此 Web App for proof of how well Background geolocation fits with ServiceWorker infrastructure. All source can be found here,包括 aaa_readme.txt。
请要求 W3C/IETF 对此进行标准化,并要求您的 UA 供应商实施它!
我正在开发一个带有 phonegap 的简单应用程序,它每 30 秒通过 ajax 将用户当前坐标发送到我的数据库 call.It 效果很好
$(document).ready(function() {
setInterval(function() {
SetLocationUpdates();
}, 30000);
});
但是如果用户导航到另一个应用程序(google 地图应用程序)或者如果我使用此代码打开 google 地图应用程序
<div><a href="geo:41.897096,27.036545">Open maps app</div>
它(通过 ajax 将坐标发送到我的数据库)失败,因为 getCurrentPosition 不工作也许 google 地图锁定它虽然我的应用程序仍然工作(我的应用程序和 google 地图应用工作 separately.Two 应用同时工作 time.Maybe 我的应用进入后台)
更具体地说,它什么都不做。
navigator.geolocation.getCurrentPosition(SetLocationUpdates, onError);
这行不执行。 永远不会调用成功或错误回调,设置超时不会影响这一点。我正在使用 Phonegap Build 从 html 和 javascript 编译应用程序。 我该怎么办?
您需要一个原生的后台地理定位解决方案 - 当您的应用程序进入后台时,主线程上的 JS 执行会暂停。
根据我的经验,最具弹性的解决方案是 cordova-background-geolocation-lt。我已经在多个 OS 版本上进行了测试,包括 Android 8 和 iOS 11,这对所有版本都有效。
请注意,当 phone 处于睡眠状态或应用程序处于后台时,Firefox 当前会继续工作。 (我相信这是一个错误)
恕我直言,最合适且电池友好的解决方案依赖于 ServiceWorkers 从 TravelManager 接收和操作 TravelEvents。
查看此 Web App for proof of how well Background geolocation fits with ServiceWorker infrastructure. All source can be found here,包括 aaa_readme.txt。
请要求 W3C/IETF 对此进行标准化,并要求您的 UA 供应商实施它!