apache cordova 应用程序中的后台服务

Posted

技术标签:

【中文标题】apache cordova 应用程序中的后台服务【英文标题】:Background Service in apache cordova app 【发布时间】:2014-11-07 19:12:04 【问题描述】:

我需要在给定的时间间隔内使用 Apache Cordova 应用程序轮询服务器,并在有相关信息时通知用户。我不确定是否可以通过 webworkers 完成,因为当应用程序在 iosandroid 中处于非活动状态时,事件(服务器轮询)也必须发生。

有没有人遇到过类似的问题?我查看了local noifications/dialogs 来传递消息,但我不确定如何创建投票服务。

提前致谢。

【问题讨论】:

【参考方案1】:

在我看来,永久投票从来都不是一个好的解决方案。我建议您使用 Push,以便您的服务器在有新内容可用时立即通知应用程序。它可以为您的设备节省大量电池电量,因为它只有在确实有更新时才会被唤醒。推送通知服务正是为此目的而构建的。

看看出色的Push Plugin for Phonegap,它适用于 iOS、Android 甚至更多平台。要为 iOS 和 Android 设置 Push Plugin,您可以阅读 Holly Schinsky's tutorial here。

在Ray Wenderlich's tutorial here 中,您可以找到有关如何实现服务器端的详细信息。

如果你真的想坚持轮询,我知道在 iOS 上可以这样做(请参阅 this article 关于 Background Fetch),不确定 Android (我猜你需要在那里实现服务) .但是,我从未找到相应地处理两个平台的后台执行的 Phonegap 插件。

【讨论】:

+1 用于后台获取。对于我认为的简单任务,电池消耗可以忽略不计。我不会急于使用推送通知解决方案,因为它带来了额外的服务器端逻辑,而且您还依赖第三方(在这种情况下为 Apple 服务器)来提供您的内容...

以上是关于apache cordova 应用程序中的后台服务的主要内容,如果未能解决你的问题,请参考以下文章

后台 Javascript 或 Cordova 应用程序中的计时器任务

Cordova 中的后台 Firebase 推送通知

使用 cordova-plugin-background-mode 在后台模式下进行位置检测和 HTTP 调用

在后台获取 Ionic/Cordova 应用程序的位置

如何将 Node.js Web 服务器与 Apache Cordova 应用程序一起使用

ionic + cordova 插件和后台模式