如何区分两个本地通知

时间:2017-08-09 19:37:22

标签: ios swift uilocalnotification

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

当它们被触发时,didReceive代表将使用UNNotificationDefaultActionIdentifier标识符进行调用:

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()
}

此委托中是否有办法区分这两个通知?

我希望根据触发的通知采取不同的操作。

2 个答案:

答案 0 :(得分:1)

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

  • actionIdentifierString与您添加到userNotificationCenter的类别相关联
  • notification这是一个包含UNNotification的{​​{1}} 原始请求即它是UNNotificationRequest
  • 的实例

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

答案 1 :(得分:1)

尝试

response.notification.request.identifier

UNNotificationRequest具有标识符,如UNNotificationRequest.h

中所示

希望这有帮助