我希望能够从通知中心删除特定的传递的推送通知。
UNUserNotificationCenter.current().removeAllDeliveredNotifications()
显然无法使用,因为它将删除所有内容。
UNUserNotificationCenter.current().removePendingNotificationRequests(withIdentifiers)
适用于本地通知,您可以在其中创建和发布通知时设置标识符。
但是,似乎没有办法为推送通知设置标识符,或者如果您实现了通知服务扩展,那么似乎既没有办法在交付推送之前在其中设置标识符,也没有办法获取任何东西。操作系统已分配的内部标识符。
因此,实际上是否真的有从通知中心删除特定的推送通知?
答案 0 :(得分:0)
根据文档,您可以使用removeDeliveredNotifications(withIdentifiers:)方法从通知中心删除特定的通知。
UNUserNotificationCenter.current().removeDeliveredNotifications(withIdentifiers: [yourNotificationIdentifier])
您也可以根据identifier的文档为远程通知指定标识符:
对于远程通知,它设置为 您在APNs请求标头中指定的apns-collapse-id密钥 生成远程通知时。如果未设置任何值,则 系统会自动分配一个标识符。