我正在使用 NativeScript 和 Angular 构建一个混合应用程序,除其他功能外,它应该能够使用地理定位插件将有关用户当前位置的信息发送到服务器。
一切都工作得很好,但是当用户(主要是司机)将整个应用程序带到后台(输入一个例如音乐应用程序)。
我尝试过很多不同的事情,但我似乎无法弄清楚我在寻找什么。更准确地说,我不知道我找到的选项是否解决了上述问题,或者它们是否只是采用地理定位服务并在后台处理它(当应用程序位于前台时)以免干扰用户界面。
如果有人能够为我指出 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
-
最佳答案
Worker 与后台服务不同。工作只是帮助您将负载从主/UI 线程移动到不同的线程。但是,当您想要在后台获取位置和上传数据时,即使您的应用程序被最小化/终止,您也需要后台服务。
nativescript-geolocation插件本身有一个 fetching location in background 的示例,您可以使用类似的方法并将数据上传到服务器,而不是像示例中那样在 toast 中显示它。
对于 iOS,您应该使用地理位置插件并使用 Background Fetch 在后台订阅更新。 。您应该使用 location
,而不是使用 UIBackgroundModes
作为 fetch
。
关于angular - 如何使 NativeScript-Angular 应用程序在后台运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57786855/