XMPP ejabberd SaaS推送通知

时间:2016-01-28 08:36:25

标签: ios xmpp apple-push-notifications ejabberd ejabberd-saas

这是对上一个问题XMPP push notifications causing problems的更新。

感谢MickaëlRémond的回答延迟和重复问题已经消失,但我仍然无法理解推送通知的行为。

  1. 如果我将应用程序移动到后台(没有锁定设备或终止),它将不会收到任何推送通知,当我将它带回前台时,所有消息都会被完美接收。

  2. 当应用程序处于前台并锁定设备时,不会触发任何通知,但会完全收到消息。

  3. 当应用程序处于后台并锁定设备时,会触发通知,收到完整的消息,但有时会在发送sendLastActivityQueryToJID后收到消息。

  4. 我不知道这里发生了什么,但如果你们有任何想法,请告诉我 PS我已经从我的应用程序中删除了背景模式。

1 个答案:

答案 0 :(得分:1)

它似乎与ejabberd没有任何关系,但似乎与推送通知在iOS上的工作方式有关。

我不完全确定你要做什么,但你不应该删除你的应用程序的后台模式。没有必要,并且允许应用程序在后台模式下运行一段时间,以及执行适当的内务管理任务还有许多其他好处。

  1. 背景中的应用程序通常会在被杀之前运行三分钟。这意味着在此期间您将在应用程序内收到正常的XMPP消息。您必须在该状态下以及收到XMPP消息后从appm触发本地通知。

  2. 当应用处于前台时,iOS将永远不会显示任何通知。这是预料之中的。如果您在XMPP服务器上连接,您将收到XMPP消息。如果未连接,您将收到通知,但不会显示。您可以在自己的应用中使用它们。

  3. 您的问题中存在一些混淆:如果您的应用处于后台,则会触发通知,但只有当您重新打开/重新连接到会话或重新连接时才会同时收到消息。 如果你需要一些流量来接收消息,那是因为你没有把空白保持活着。如果你不这样做,服务器会认为你突然失去了连接,并开始发送推送通知和缓冲消息。确保按照文档中的建议实现空白保持活动,否则它将无法正常工作。