如何在后台制作 nativescript-angular 应用程序 运行?

How to make a nativescript-angular app run in the background?

我正在使用 nativescript 和 angular 构建一个 hybrid-app,除其他功能外,它应该能够使用地理定位插件将有关用户当前位置的信息发送到服务器。

一切正常,但我不知道如何在用户(主要是司机)将整个应用程序置于后台(以例如输入音乐应用程序)。

我尝试了很多不同的东西,但我似乎无法弄清楚我在寻找什么。更准确地说,我不知道我找到的选项是否解决了上述问题,或者它们是否只是采用地理定位服务并在后台处理它(当应用程序在前台时)以便不干扰用户界面。

如果有人能为我指明 Android 和 iOS 的正确方向(我应该实施的内容,以便它在 Android 和实施什么才能在 iOS).

中工作

谢谢!

我找到的选项(实际上并没有尝试其中的一些,因为我不确切地了解哪些使一个进程在后台工作,哪些可以帮助我使我的应用程序 运行 它的进程同时在背景中): 1. https://github.com/NativeScript/worker-loader

2. https://docs.nativescript.org/core-concepts/multithreading-model?_ga=2.61764908.1834822381.1567423754-1194537488.1566893752

3. https://github.com/NativeScript/nativescript-geolocation/blob/master/README.md

4. https://www.nativescript.org/blog/using-android-background-services-in-nativescript(我认为这是因为工人选项的实施而被弃用)

5. https://github.com/NativeScript/sample-android-background-services

-

A Worker 不同于 Background Service。一项工作只是帮助您将负载从 main / UI 线程转移到另一个线程。但是当你想要在后台获取位置和上传数据时,你需要一个后台服务,即使你的应用程序被最小化/终止。

nativescript-geolocation plugin itself has an example for fetching location in background,您可以使用类似的方法将数据上传到服务器,而不是像示例中那样在 toast 中显示。

对于 iOS,您应该使用地理位置插件并使用 Background Fetch 在后台订阅更新。而不是 UIBackgroundModes 作为 fetch 你应该使用 location.