Я не могу очистить локальное уведомление в приложении, которое запланировано из расширения службы уведомлений (NSE) - PullRequest
0 голосов
/ 14 января 2020

В настоящее время я не могу очистить локальное уведомление в приложении (пример: напоминание), которое я запланировал из расширения службы уведомлений (NSE).

Устал очищать, используя следующие API,

NSArray *ids = @[@"Notify_from_app",@"Notify_from_extension"];   

UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];      
[center removeAllDeliveredNotifications];   
[center removePendingNotificationRequestsWithIdentifiers:ids];   

Приведенный выше код работает нормально, когда я пытаюсь очистить уведомление в NSE, которое запланировано из того же NSE. (если я попытаюсь очистить приложение, я не смогу)

К вашему сведению, я могу удалить все уведомления, используя следующий код. (но моя цель - очистить уведомление, используя идентификаторы, специфицированные c уведомление)

UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];   
[center removeAllDeliveredNotifications];   
[center removeAllPendingNotificationRequests];   

Согласно документации Apple, объект currentNotficationCenter также поддерживает расширения приложений, поэтому я могу планировать оттуда локальное уведомление.

enter image description here

  • Возможно, объект currentNotificationCenter для приложения не равен объекту currentNotificationCenter NSE.
  • Это имеет больше смысла, потому что оба имеют отдельный контейнер. (Вот почему мы не можем напрямую получить доступ к контейнеру приложения из NSE.)
  • Могу ли я сделать копию объекта в основных данных и получить ее в приложении для очистки уведомления? Это не похоже на хорошую практику.

Я ищу правильное решение, чтобы убрать напоминания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...