如何在通知中心删除特定的远程通知

Don*_*hen 7 apple-push-notifications ios

我们都知道这种方法[UIApplication sharedApplication].applicationIconBadgeNumber = 0;可以从通知中心移除我们应用程序的所有远程通知。但是,出于某种原因,我想删除用户点击通知中心的那个,而保留其他的。

它有什么方法可以做到吗?

Meh*_*mar 5

随着UNUserNotificationCenteriOS 10 及更高版本的引入,现在可以删除您的应用程序的少数或全部远程通知。

UNUserNotificationCenter 文档

使用此类的共享单例实例,可以管理设备上传递的远程通知。具体来说,可以使用以下方法: func removeDeliveredNotifications(withIdentifiers: [String])如果您想删除应用程序的特定通知,或者func removeAllDeliveredNotifications()删除应用程序的所有通知。


Kyl*_*son 4

如果您只是想从徽章号码中删除一个号码:

[UIApplication sharedApplication].applicationIconBadgeNumber = MAX([UIApplication sharedApplication].applicationIconBadgeNumber - 1, 0);

如果您询问如何以编程方式从通知中心删除单个通知,则无法在代码中完成。显然,在 iOS8 中,当用户点击某个通知时,操作系统会删除该通知。否则不可能由你来处理。

请参阅:/sf/answers/739889321/

  • 从 iOS 10 开始,这也是可能的。检查我的答案http://stackoverflow.com/a/43942760/2020490 (2认同)