如何在 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()
。
我有一个 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()
。