I want to remove all previous local notification from NotificationCenter when adding new notifications. But it is working in iOS9.0 and lower version but in iOS 10 it fires multiple local notifications. So it seems like cancelAllLocalNotifications
not clearing notifications.
Code compile successfully in iOS10.
UIApplication.shared.cancelAllLocalNotifications()
For iOS 10, Swift 3.0
cancelAllLocalNotifications
deprecated from iOS 10.
@available(iOS, introduced: 4.0, deprecated: 10.0, message: "Use UserNotifications Framework's -[UNUserNotificationCenter removeAllPendingNotificationRequests]") open func cancelAllLocalNotifications()
You will have to add this import statement,
import UserNotifications
Get notification center. And perform the operation like below
let center = UNUserNotificationCenter.current()
center.removeAllDeliveredNotifications() // To remove all delivered notifications
center.removeAllPendingNotificationRequests() // To remove all pending notifications which are not delivered yet but scheduled.
If you want to remove single or multiple specific notification, you can achieve it by below method.
center.removeDeliveredNotifications(withIdentifiers: ["your notification identifier"])
Hope it helps..!!
For iOS 10, Objective C:
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
[center removeAllDeliveredNotifications];
[center removeAllPendingNotificationRequests];
Swift 4:
UNUserNotificationCenter.current().removeAllPendingNotificationRequests()
If you want to list all notifications:
func listPendingNotifications() {
let notifCenter = UNUserNotificationCenter.current()
notifCenter.getPendingNotificationRequests(completionHandler: { requests in
for request in requests {
print(request)
}
})
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With