在Apache Cordova应用程序中的后台服务

6
我需要在Apache Cordova应用程序中以给定的时间间隔轮询服务器,并在有相关信息时通知用户。我不确定是否可以使用Web Workers,因为事件(服务器轮询)也必须在iOS和Android上的应用程序处于非活动状态时发生。
有人遇到过类似的问题吗?我已经查看了本地通知/对话框的链接,但我不确定如何创建轮询服务。
提前感谢。
1个回答

6
在我看来,永久轮询从来不是一个好的解决方案。我建议您使用Push,这样您的服务器会在有新内容可用时立即通知应用程序。这可以节省设备的大量电池寿命,因为只有在真正有更新时才会唤醒它。推送通知服务就是为了这个目的而构建的。
请查看出色的Phonegap Push Plugin,它适用于iOS、Android甚至更多平台。要设置iOS和Android的Push Plugin,您可以阅读Holly Schinsky's教程
Ray Wenderlich's教程中,您可以找到有关如何详细描述服务器端的信息。
如果您真的想坚持使用轮询,我知道在iOS上有可能做到这一点(请参阅此文章关于Background Fetch),不确定Android是否可以实现(我猜您需要在那里实现一个服务)。然而,我从未找到一个Phonegap插件可以相应地处理两个平台的后台执行。

1
+1 是背景抓取的一个优点。对于简单任务,电池耗损可以忽略不计。我认为不应该急于采用推送通知解决方案,因为这会带来额外的服务器逻辑,并且您还依赖第三方(在这种情况下是苹果服务器)来传递您的内容... - Kozuch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接