通知中心 - 如何知道是否存在“未读”通知?

问题描述:

在我的应用程序中,我有一个推送通知服务器正常工作,我收到预期的通知。通知中心 - 如何知道是否存在“未读”通知?

如果我在应用程序,我收到通知

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 

被称为..

如果我的应用程序之外,我收到通知,并点击进入吧..

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 

被称为..

如果我的应用程序之外,收到通知,并通过加载我的应用程序点击它的跳板上的图标..

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 

叫... ?????

我不明白这是为什么,肯定有办法检查通知中心并说'嗨!通知中心,我是否有任何未读的aps有效载荷需要处理?'

+0

以Whatsapp应用程序为例,它们从服务器检索用户数据,并检查用户是否有针对服务器**的未处理通知而不是** APN。 – Mazyod 2012-08-02 14:12:15

+0

但这意味着您可以与服务器进行核对并“收到”通知,但随后返回通知中心并再次接收。 – Bongeh 2012-08-02 14:14:42

+0

这里试图解释的方法完全独立于APN服务。最后的通知只是数据,所以只需要从服务器请求数据。这不是一个完美的答案,但它可能有帮助。 – Mazyod 2012-08-02 14:16:49

而不是通过所有的意见去的,结论如下:

  1. 设置图标徽章号
  2. 一旦启动应用程序,或从后台返回,检查应用程序徽章。
  3. 决定是否向服务器请求任何数据。

这是一个解决方案,但我们也有兴趣:

可以查询通知中心呢?

+0

呃我也太需要你想要的东西了。但是,你如何请求来自服务器的任何数据。当你提到服务器时,你是指APN服务器还是你维护的任何个人服务器?请提供一些示例代码以从服务器请求任何数据。 – pushpa 2012-08-10 06:01:12

+0

我们在这里讨论个人服务器。要请求数据,您需要两件事:1,下载iOS的NSURLConnection代码。搜索它,代码是丰富的。 2-我不熟悉的服务器端逻辑。发布一个新问题,希望某个地方的某个好人会知道如何。 – Mazyod 2012-08-10 11:02:38