Pubnub iOS 推送通知过滤?

Pubnub iOS push notification filtering?

根据 this post,最佳做法是在客户端过滤频道消息。当集成推送通知时,我还没有找到可行的方法来做到这一点。现在,我们的 iOS 客户端在应用未 运行.

时收到大量无用消息的通知

过滤 PubNub 消息和推送通知

这是 APNS 而非 PubNub 的缺点。 PubNub 的工作方式是一个频道的所有订阅者都会收到在该频道上发布的所有消息。但是,当应用程序在 iOS 上处于后台或根本不在 运行 时,您的应用程序没有机会在 iOS 设备显示之前处理推送通知。 Android/GCM 允许您的应用程序在消息显示之前拦截消息。

幸运的是,只有一种情况(我能想到)消息的发件人会收到消息的推送通知版本(意思是,您无法拦截也无法显示)。

  • 用户发布消息
  • 然后立即(快速)离开应用程序(主页按钮、切换到另一个应用程序等)
  • 推送消息出现

但是如果用户在应用程序中停留一两秒(或足够长的时间以接收实时消息和推送通知),那么您可以阻止显示推送消息。但是不需要过滤 UUID,因为当应用程序在 didReceiveRemoteNotification 委托中处于活动状态时,您应该禁止显示所有推送通知,因为您已经在订阅回调中获得了实时消息。

link you referenced (Filter Owner Messages on PubNub Data Streams) 仅用于实时推送通知,Stephen 提出了我们将在不久的将来推出的一项功能,该功能允许您订阅一个频道,但提供一个查询,允许您filter/query 频道上消息的条件,如“where uuid !=”,其中是订阅者的 uuid。然后订阅者将不会收到实时或推送通知消息,因为服务器会为您过滤掉它们。

有关推送通知的完整概述,请参阅 Sending APNS and GCM Messages to Subscribers and Mobile Push Notification Services in One API Call

完成push notification setup, configuration and implementation, see the docs for each of our SDKs.

另外,请参阅我描述 的回答。同样的事情可以在 Android 上完成,但不需要做任何特别的事情,因为您总是有机会在显示推送通知之前对其进行处理。