如何区分两个本地通知

How to differentiate between two local notifications

我有两个本地通知,一个根据日期触发,另一个根据时间触发。

当它们被触发时,使用 UNNotificationDefaultActionIdentifier 标识符调用 didReceive 委托:

func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
    switch response.actionIdentifier {
    case UNNotificationDismissActionIdentifier:
        print("Dismiss Action")
    case UNNotificationDefaultActionIdentifier:
        // this part is called when notification is triggered
    ......................................
    default:
        print("Unknown action")
    }

    completionHandler()
}

这个委托有没有办法区分这两个通知?

我想要根据触发的通知执行不同的操作。

您的 回复UNNotificationResponse。它有两个不变的属性:

  • actionIdentifier,与您添加到 userNotificationCenter
  • 的类别相关的 String
  • notification 这是一个 UNNotification 包含 原始 request 即它是 UNNotificationRequest.
  • 的一个实例

所以切换使用:response.notification.request.identifier

试试

response.notification.request.identifier

UNNotificationRequest 具有标识符,如 UNNotificationRequest.h

所示

希望对您有所帮助