如何在 Swift 5 中使用 UNTimeIntervalNotificationTrigger 停止 UNUserNotificationCenter?

How to stop UNUserNotificationCenter using UNTimeIntervalNotificationTrigger in Swift 5?

我有一个 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 发送通知的最佳方法是什么?

您只需调用 removePendingNotificationRequests(withIdentifiers:) 并传入您需要取消已安排但未送达的通知的标识符。

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

或者,如果您想删除应用的所有待处理通知,您可以改为调用 removeAllPendingNotificationRequests()