Pubnub iOS推送通知过滤?

时间:2015-09-30 23:40:52

标签: ios pubnub

根据this post,最佳做法是在客户端过滤频道消息。当集成推送通知时,我还没有找到一种可行的方法。现在,当应用程序未运行时,我们的iOS客户端会收到许多无用消息的通知。

1 个答案:

答案 0 :(得分:4)

过滤PubNub消息和推送通知

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

幸运的是,只有一种情况(我能想到),msg的发送者会收到消息的推送通知版本(意思是,你不能拦截而不显示它)。

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

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

link you referenced (Filter Owner Messages on PubNub Data Streams)仅用于实时推送通知,Stephen正在调用我们将在不久的将来推出的功能,允许您订阅频道但提供允许您过滤/的查询查询通道上消息的条件,例如“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

另外,请参阅我的回答,其中描述了how to use iOS silent push notifications to do on device filtering。同样的事情可以在Android上完成,但不需要做任何特别的事情,因为你总是有机会在显示之前处理推送通知。