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

Posted

技术标签:

【中文标题】如何在通知中心删除特定的远程通知【英文标题】:How to remove specific remote notification in the notification center 【发布时间】:2014-12-21 17:02:43 【问题描述】:

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

有什么方法可以做到吗?

【问题讨论】:

【参考方案1】:

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

UNUserNotificationCenter documentation

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

【讨论】:

【参考方案2】:

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

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

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

见:https://***.com/a/10569847/620577

【讨论】:

@Don_Chen 请将此标记为已回答,如果您认为这是答案,请点赞。 启动 iOS 10,这也是可能的。检查我的答案***.com/a/43942760/2020490

以上是关于如何在通知中心删除特定的远程通知的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iphone 中删除单个远程通知

从通知中心删除远程通知

如何清除 iOS 的远程推送通知?

当应用程序在前台时,如何使远程通知出现在通知中心?

如何控制通知中心的 APN 条目数

如何在特定时间从 iOS 通知中心自动删除推送通知?