我正在使用本机脚本和angular构建一个混合应用程序,除其他功能外,该应用程序应能够使用地理位置插件将有关用户当前位置的信息发送到服务器。
一切正常,但是当用户(主要是驱动程序)将整个应用程序带到后台(输入一个)时,我想不通如何保持它发送位置信息(5-15秒更新)。音乐应用程序)。
我尝试了很多不同的方法,但是我似乎无法弄清楚自己在寻找什么。更确切地说,我不知道我找到的选项是否解决了上述问题,或者它们是否只是采用了地理定位服务并在后台(当应用程序处于前台时)对其进行处理,以免干扰用户界面。
如果有人能为我指出适用于Android和iOS的正确方向,我将不胜感激(如我应该实现的功能使其可以在Android上运行以及要实现的功能以使其在iOS上运行)。
谢谢!
我发现的选项(实际上我并没有尝试其中的一些选项,因为我不完全了解哪些选项在后台使一个进程正常工作,哪些选项可以帮助我让我的应用程序在后台运行其进程): 1。 https://github.com/NativeScript/worker-loader
3。 https://github.com/NativeScript/nativescript-geolocation/blob/master/README.md
4。 https://www.nativescript.org/blog/using-android-background-services-in-nativescript(由于执行worker选项,我认为此方法已被弃用)
5。 https://github.com/NativeScript/sample-android-background-services
-
答案 0 :(得分:1)
工作者与背景服务不同。一项工作只是帮助您将负载从主/ UI线程转移到另一个线程。但是,即使您的应用程序已被最小化/杀死,当您要在后台获取位置并上传数据时,也需要后台服务。
nativescript-geolocation插件本身有一个fetching location in background的示例,您可以使用类似的方法并将数据上传到服务器,而不是像示例中那样在举杯中显示。
对于iOS,您应该使用地理位置插件,并使用Background Fetch在后台订阅更新。不应将UIBackgroundModes
用作fetch
,而应使用location
。