Reputation: 514
Solution Code:
let center = UNUserNotificationCenter.current()
print(center.getPendingNotificationRequests(completionHandler: { error in
// error handling here
}))
My original post:
I am trying to get a list of pending notifications via UNUserNotificationCenter as UIApplication.shared.scheduledLocalNotifications
was depreciated.
This is the code I'm using:
let center = UNUserNotificationCenter.current()
print(UNUserNotificationCenter.getPendingNotificationRequests(center))
However this prints "(Function)". getPendingNotificationRequests requires a UNUserNotificationCenter parameter and I can't think of what else it could be.
Thanks
Upvotes: 22
Views: 18453
Reputation: 246
For ObjC:- [[UNUserNotificationCenter currentNotificationCenter] getPendingNotificationRequestsWithCompletionHandler:^(NSArray<UNNotificationRequest*> *requests){ NSLog(@"requests: %@", requests); }];
Upvotes: -1
Reputation: 5954
Just in case anyone needs to access notifications that are already delivered (user can see them in notification center), this can be done in the following way:
let center = UNUserNotificationCenter.current()
center.getDeliveredNotifications { notifications in
// use center.removeDeliveredNotifications(withIdentifiers:requestIdsToRemove)
// if you want to cancel some of the notifications displayed to user
}
}
Upvotes: 4
Reputation: 9
it's not actually now, but you should allow to use notifications
UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { (granted, error) in
if !granted {
print("user has declined notifications")
}
}
Upvotes: 0
Reputation: 4480
The getPendingNotificationRequests
call passes an array of requests to the completion closure. Try something like this:
let center = UNUserNotificationCenter.current()
center.getPendingNotificationRequests(completionHandler: { requests in
for request in requests {
print(request)
}
})
Upvotes: 47