2012-02-12 64 views
0

我推送一些文本到iPhone应用程序。一旦消息在应用程序中被接受并处理,我仍会在通知区域看到消息,如果再次接受消息,则会在应用程序中重复该消息。删除推送通知,一旦它被用户接受

我该如何避免这种情况?一旦推送被接受,是否有消息将其从通知区域中删除。

换句话说,一旦

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

执行,我想从通知区域中删除的通知。

+0

是本地还是远程通知? – samfisher 2012-02-12 07:22:39

+0

远程通知 – shebelaw 2012-02-13 18:33:41

+0

查看此答案:http://stackoverflow.com/a/7821985/428442。诀窍,显然,应用程序徽章的价值必须改变。因此,将其设置为1,然后设置为0,并且应该从通知中心删除通知。 – 2012-02-13 19:42:45

回答

7

将徽章值设置为1或某个值,然后将其设置回0工作。如下所示:

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:1]; 
    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]; 
    [[UIApplication sharedApplication] cancelAllLocalNotifications]; 
+0

似乎不适合我。 可能有其他解决方案吗? – NadavN7 2012-10-24 14:49:25

+0

它真的适用于远程通知吗? – 2013-01-31 13:19:24

+0

@shebelaw以上代码将有助于从通知中心删除所有通知。但是有什么办法可以删除我们从通知中心选择的单个通知。 – 2013-08-09 10:59:28

1

试试这个也许?

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]; 
[[UIApplication sharedApplication] cancelAllLocalNotifications]; 
+0

这是行不通的 – shebelaw 2012-02-13 19:06:09

+0

我在' - (void)application:(UIApplication *)应用程序 didReceiveRemoteNotification:(NSDictionary *)userInfo'完成之前设置了这个。 – shebelaw 2012-03-04 23:39:11