从通知中心删除单个远程通知

我的应用程序从Apple服务器接收远程通知。

当用户点击它时,是否有办法从通知中心(iOs 5.0+的下拉菜单)中删除单个远程通知?

在这里输入图像说明

谢谢!

从iOS SDK 5.0开始,无法删除特定的通知。 当用户从其中一个应用程序打开应用程序时,从应用程序中删除所有通知 ,以便它们不会显示在通知中心的方法是将应用程序标记设置为0,如下所示:

[UIApplication sharedApplication].applicationIconBadgeNumber = 0; 

编辑:在iOS 8上,SpringBoard似乎会自动closures通知,当你点击通知中心打开应用程序。

这里有一个build议,虽然它有缺点,我自己也没有尝试过:

  • 推送无声通知(contentAvailable:true),不要在推送中包含“警报”,将警报文本置于推送的自定义属性中
  • 处理传入的推送并触发本地通知,立即显示
  • 如果用户点击本地通知,则使用[UIApplication cancelLocalNotification:]应该从通知中心删除通知。

当你调用方法: [application cancelAllLocalNotifications]; 在AppDelegate方法里面:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

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

所有本地和推送通知将被删除对于特定的应用程序。