2

我有一个长轮询 forge.request.ajax 调用,它连接到我的服务器以侦听新事件或通知。它在应用程序在前台处于活动状态时工作,但在应用程序处于后台时似乎不起作用。

我使用了 forge.event 模块中的 isPaused 事件,在新请求进来时更新徽章,但没有任何反应。当我回到应用程序时,我会收到应用程序在后台发送的通知。

当应用程序在后台时,是否可以保持 longpoll ajax 请求打开?

4

1 回答 1

2

当触发器应用程序在后台时,您不能从它进行长时间轮询。

当触发应用程序进入后台时,JS 执行会暂停。当应用程序进入后台时,会调用appPaused 事件的侦听器,但有一些限制:

回调中可以执行的内容因平台而异:

  • Android:可以运行任何 javascript,但在应用程序恢复之前可能不会触发计时器,这可以防止应用程序不必要地使用电池。
  • iOS:执行的时间很短,通常最好假设回调和计时器在应用程序恢复之前可能不会触发。

这不是 Trigger 所固有的,但一般来说,移动应用程序,特别是 iOS 对您可以在后台运行多长时间非常严格。这类问题通常使用推送通知来解决,它更可靠(即使您的应用程序被杀死也能继续工作)并且对电池更友好。

于 2013-11-05T10:26:42.940 回答