Отменить UNNotificationRequest

Поскольку UILocalNotification теперь устарел, я перенес свой код на новый UNNotificationRequest API.

В нем говорится: «cancelLocalNotification» устарело в iOS 10.0: используйте -[UNUserNotificationCenter removePendingNotificationRequestsWithIdentifiers:] UserNotifications Framework.

Но похоже, что это не равно - в то время как я мог удалить сообщения с cancelLocalNotification в любое время (даже они отображаются/доставлены), кажется, что removePendingNotificationRequestsWithIdentifiers удаляет только недоставленные уведомления. Это действительно раздражает.

Итак, мой вопрос: есть ли правильный способ удаления уведомлений, поставленных в очередь с помощью UNNotificationRequest, или я должен просто игнорировать эти предупреждения об устаревании?


person coyer    schedule 11.08.2017    source источник
comment
увидеть это один раз stackoverflow.com/questions/40562912/   -  person Anbu.Karthik    schedule 11.08.2017
comment
@ Anbu.Karthik в этом вопросе упоминаются только ожидающие уведомления, а OP искал доставленные уведомления.   -  person Dávid Pásztor    schedule 11.08.2017


Ответы (2)


Вы также можете использовать функцию removeDeliveredNotifications(withIdentifiers:) для удаления уже доставленных уведомлений из центра уведомлений. Дополнительные сведения см. в документации.

person Dávid Pásztor    schedule 11.08.2017

Swift 4 и Swift 5

Если вы хотите удалить все UNNotificationRequest элементы, вы можете использовать:

let center = UNUserNotificationCenter.current()
center.removeAllPendingNotificationRequests()
person skymook    schedule 19.04.2018