Asi*_*ood 5 android geolocation cordova
我已经在PhoneGap中开发了一个应用程序,它通过地理定位API跟踪您的行进路线,我通过navigator.geolocation.getCurrentPosition(onSuccess, onError);定期间隔后通过获取位置来获取设备的当前位置并更新折线navigator.geolocation.watchPosition(function(position)
但是现在问题是它不能在后台工作,即(当我打开另一个应用程序并且它开始在后台运行时)它不会更新折线意味着不会触发此navigator.geolocation.watchPosition(function(position)功能所以我尝试通过Cordova-plugin-background-mode此插件运行应用程序,它开始在后台运行应用程序并再次触发该navigator.geolocation.watchPosition(function(position)函数意味着这不是必需的,即(没有必要安装插件以在后台模式下运行应用程序).所以请帮我解决在后台模式下获取位置的问题.如果我使用这个Cordova-plugin-mauron85-background-geolocation插件,我可以获得一个位置,因为我通过观察位置?如果应用程序在前台运行该怎么办?我是否必须使用该watchPosition功能或其他东西?
您可能想深入研究这个位置插件。他们似乎认为他们已经解决了问题。
对我有权访问的手机进行快速的拨弄 和测试表明这不是电话间隙问题。这是操作系统问题。大多数手机都经过优化,可以暂停后台活动,尤其是网络浏览器活动。最好结合本机事件来获得您想要的行为。
navigator.geolocation.watchPosition( positionChanged, err, options );
Run Code Online (Sandbox Code Playgroud)
我确实注意到,即使对于后台任务,手机也会保持所有连接打开。您可以通过对不拒绝但无法响应的服务器进行 ajax 调用来应对这种情况,添加超时处理程序,并设置您想要的时间间隔,在 ajax 超时处理程序中检查位置,然后设置一个新的电话。
祝你好运!
| 归档时间: |
|
| 查看次数: |
458 次 |
| 最近记录: |