是否可以从通知中心删除特定的推送通知?

时间:2019-08-09 17:14:06

标签: ios

我希望能够从通知中心删除特定的传递的推送通知。

UNUserNotificationCenter.current().removeAllDeliveredNotifications()显然无法使用,因为它将删除所有内容。

UNUserNotificationCenter.current().removePendingNotificationRequests(withIdentifiers)适用于本地通知,您可以在其中创建和发布通知时设置标识符。 但是,似乎没有办法为推送通知设置标识符,或者如果您实现了通知服务扩展,那么似乎既没有办法在交付推送之前在其中设置标识符,也没有办法获取任何东西。操作系统已分配的内部标识符。

因此,实际上是否真的有从通知中心删除特定的推送通知?

1 个答案:

答案 0 :(得分:0)

根据文档,您可以使用removeDeliveredNotifications(withIdentifiers:)方法从通知中心删除特定的通知。

UNUserNotificationCenter.current().removeDeliveredNotifications(withIdentifiers: [yourNotificationIdentifier])

您也可以根据identifier的文档为远程通知指定标识符:

  

对于远程通知,它设置为   您在APNs请求标头中指定的apns-collapse-id密钥   生成远程通知时。如果未设置任何值,则   系统会自动分配一个标识符。