Есть ли способ приостановить повторяющееся уведомление для одного экземпляра? - PullRequest
0 голосов
/ 26 апреля 2019

Я хочу иметь возможность приостановить повторяющееся уведомление на один раз, и время, когда оно должно быть запущено, я хочу, чтобы оно срабатывало. Я знаю о removeAllPendingNotifications. Но не уверен, что это сработает, так как, кажется, полностью его удалит. Что ты думаешь?

Ответы [ 2 ]

0 голосов
/ 29 апреля 2019

Мое решение - удалить уведомление за день, используя приведенный выше код, или просто узнать идентификатор и удалить идентификатор ожидающего уведомления.Затем добавьте уведомление обратно, но на следующий день.

т.е. пример похож на приложение to do, которое имеет повторяющуюся задачу, но не хочет получать уведомления о выполненной задаче.

Этот стекопоток как код: Планирование локальногоежедневные уведомления с завтрашнего дня в Swift

0 голосов
/ 26 апреля 2019

Вы можете использовать getPendingNotificationRequests и выбрать идентификаторы, которые нужно отменить, а затем передать их на removePendingNotificationRequests(withIdentifiers: [String])

UNUserNotificationCenter.current().getPendingNotificationRequests { (reqs) in
   var ids =  [String]()
   reqs.forEach {
       if $0.identifier == "someId" {
          ids.append($0.identifier)
       }
   }
   UNUserNotificationCenter.current().removePendingNotificationRequests(withIdentifiers:ids)
}

`

...