Nativescript如何在后台发出http请求

Posted

技术标签:

【中文标题】Nativescript如何在后台发出http请求【英文标题】:Nativescript how to make http requests in the background 【发布时间】:2019-07-31 05:22:09 【问题描述】:

嗨,因为我希望能够在应用程序关闭时运行一些代码 (关闭我的意思是由任务管理器关闭)。 我的应用程序必须能够在 androidios 的后台通过 axios 发出 http 请求(必须使用本地通知插件发送通知,提醒外部日历中的一个或多个事件将在一小时内开始),我在网络,我看到了文档,但不清楚我应该怎么做,我还读到在 android 8 上运行后台代码的方式发生了根本性的变化。 有人可以向我解释我必须做什么吗?我应该向系统请求什么权限?或者如果网上有任何代码示例。

【问题讨论】:

【参考方案1】:

这里是为iOS 和Android 实现后台服务的示例。

还有一个插件nativescript-background-fetch 可能对你有用。

tns plugin add nativescript-background-fetch

在应用停止运行时大约每 15 分钟调用一次回调函数,这样您就可以完成后台活动,例如下载内容等,

【讨论】:

嗨,是的,这就是我要找的。但是我有一个问题,我安装了插件,但是当使用 import BackgroundFetch from "nativescript-background-fetch" 的数量给我这个错误:无法读取未定义的属性 'CompletitionHandler' 是运行时异常还是编译异常? 运行时 java.lang.RuntimeException: 无法创建应用程序 com.tns.NativeScriptApplication: com.tns.NativeScriptException:【参考方案2】:

好的,您应该在 Android 中使用服务。这是一个简单的类,使它在后台发生,完成后您可以停止服务。它适用于最高 API v26 api 的 android。 (不包括 26 个)。 Documentation

对于 >=26,您可以使用管理器。已经有一个downloadManager。但是你不必使用它,你也可以使用 Job Scheduler (>=lollipop)。 有一个很好的教程here。

另外,阅读有关在 NativeScript 中使用 Android 后台服务的信息here。

【讨论】:

@ChristopherCivitale 不,它适用于 android 我现在在末尾添加了一个 nativeScript 的新链接。 你好,我看到了文档,但我不清楚一件事。示例使用tap事件开始后台运行,如何不用按键自动启动后台服务? 您不必使用按钮。随时随地启动它。在应用程序启动时。在服务器回复时。在推送通知时。限制是您的想象力。

以上是关于Nativescript如何在后台发出http请求的主要内容,如果未能解决你的问题,请参考以下文章

使用 android 发出 HTTP 请求

后台线程中的 moya 请求

如何查看Ajax请求

在 Nest JS 中发出 http 请求时出现 httpService 未定义错误

如何在 Flutter 上使用 cookie 发出 http 请求?

iOS - 在后台推送通知上刷新数据(发出 Api 请求)