Cancel UNNotificationRequest

2019-07-16 09:19发布

问题:

Because UILocalNotification is now deprecated, I moved my code to the new UNNotificationRequest API.

It states: 'cancelLocalNotification' was deprecated in iOS 10.0: Use UserNotifications Framework's -[UNUserNotificationCenter removePendingNotificationRequestsWithIdentifiers:]

But it seems that it is not equal - while I could remove messages with cancelLocalNotification at any time (even they are displayed/delivered) it seems that removePendingNotificationRequestsWithIdentifiers only removes undelivered notifications. That's really annoying.

So my question is: Is there a valid way removing notifications queued with UNNotificationRequest or should I just ignore those deprecation warnings?

回答1:

You can also use the removeDeliveredNotifications(withIdentifiers:) function to remove already delivered notifications from the notification center. For more info, see the documentation



回答2:

Swift 4

If you want to remove all UNNotificationRequest items, you can use:

let center = UNUserNotificationCenter.current()
center.removeAllPendingNotificationRequests()