Cancel UNNotificationRequest

2019-07-16 08:35发布

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?

2条回答
对你真心纯属浪费
2楼-- · 2019-07-16 09:27

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

查看更多
不美不萌又怎样
3楼-- · 2019-07-16 09:35

Swift 4

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

let center = UNUserNotificationCenter.current()
center.removeAllPendingNotificationRequests()
查看更多
登录 后发表回答