本地通知标识符
Local Notifications Identifiers
我有以下用于请求和发布通知的代码:
let request = UNNotificationRequest(identifier: "timerDone", content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)
它在 for 循环中,因此通常会执行多次 - 循环的每次迭代都会导致此代码成为 运行,但是对于每次迭代,请求都具有相同的标识符。
这是否意味着我要覆盖我刚刚在循环的上一次迭代中添加的上一个通知? (我问的原因是因为即使有多个计时器,关闭应用程序后也只会发出一个通知;通知通常针对计时器的通知,这是 for 循环中的最后一次迭代(此代码在应用程序中确实辞职了活跃)).
If you use the same identifier when scheduling a new notification, the
system removes the previously scheduled notification with that
identifier and replaces it with the new one.
您始终可以为您的标识符添加唯一的内容、简单的迭代 index/number、UUID、项目 ID 或其他任何内容。
let identifier = "timerDone-\(index)"
是的,它会用新通知覆盖旧通知。
您可以在循环中进行此更改:
let strIdentifier = "timerDone_\(i)"
let request = UNNotificationRequest(identifier: strIdentifier, content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)
我有以下用于请求和发布通知的代码:
let request = UNNotificationRequest(identifier: "timerDone", content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)
它在 for 循环中,因此通常会执行多次 - 循环的每次迭代都会导致此代码成为 运行,但是对于每次迭代,请求都具有相同的标识符。
这是否意味着我要覆盖我刚刚在循环的上一次迭代中添加的上一个通知? (我问的原因是因为即使有多个计时器,关闭应用程序后也只会发出一个通知;通知通常针对计时器的通知,这是 for 循环中的最后一次迭代(此代码在应用程序中确实辞职了活跃)).
If you use the same identifier when scheduling a new notification, the system removes the previously scheduled notification with that identifier and replaces it with the new one.
您始终可以为您的标识符添加唯一的内容、简单的迭代 index/number、UUID、项目 ID 或其他任何内容。
let identifier = "timerDone-\(index)"
是的,它会用新通知覆盖旧通知。
您可以在循环中进行此更改:
let strIdentifier = "timerDone_\(i)"
let request = UNNotificationRequest(identifier: strIdentifier, content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)