Как остановить UNUserNotificationCenter, используя UNTimeIntervalNotificationTrigger в Swift 5? - PullRequest
0 голосов
/ 17 апреля 2020

У меня есть UNUserNotificationCenter, который отправляет локальное уведомление каждые 60 секунд. Это реализовано, как показано ниже:

    let userNotificationCenter = UNUserNotificationCenter.current()
    let notificationContent = UNMutableNotificationContent()
    notificationContent.title = "Test title"
    notificationContent.body = "Test body"

    let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 60,
                                                    repeats: true)

    let request = UNNotificationRequest(identifier: "testNotification",
                                        content: notificationContent,
                                        trigger: trigger)

    userNotificationCenter.add(request) { (error) in
        if let error = error {
            print("Notification Error: ", error)
        }
    }

Работает хорошо, но я не могу это остановить и продолжает отправлять уведомления, даже если мое приложение убито.

Каков наилучший способ остановить UNUserNotificationCenter для отправки уведомлений в этом случае?

1 Ответ

1 голос
/ 17 апреля 2020

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

userNotificationCenter.removePendingNotificationRequests(withIdentifiers: ["testNotification"])

Или если вы хотите удалить все ожидающие уведомления для вашего приложения , вместо этого вы можете позвонить removeAllPendingNotificationRequests().

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