Я пытаюсь получить сведения о предупреждающем сообщении, когда мое приложение открывается, когда пользователь нажимает на сообщение оповещения на своем MAC-адресе.
У меня нет проблем с получением оповещения при открытии приложения.Следующий делегат работает нормально, когда приложение уже открыто.
func application(_ application: NSApplication,
didReceiveRemoteNotification userInfo: [String : Any])
Однако, когда приложение открывается с помощью щелчка по уведомлению о предупреждении, я должен получить userInfo из
func applicationDidFinishLaunching(_ aNotification: Notification)
Я не могу получить предупреждение userInfo
в этой функции.
let mydictionary = aNotification.userInfo
let mydesc = mydictionary!.description
os_log("aNotification.userInfon= %{public}@", log: osLog, mydesc)
Выходные данные os_log
, я вижу сообщение с предупреждением в описании.
aNotification.userInfon= [AnyHashable("NSApplicationLaunchIsDefaultLaunchKey"): 0, AnyHashable("NSApplicationLaunchUserNotificationKey"): <UNNotificationResponse: 0x600003ac1480; actionIdentifier: com.apple.UNNotificationDefaultActionIdentifier, notification: <UNNotification: 0x600003ac1580; date: 2019-05-08 18:26:59 +0000, request: <UNNotificationRequest: 0x6000034cd560; identifier: E6D76BF3-6643-4627-BF38-3B11B5C3F0B3, content: <UNNotificationContent: 0x600000fe0780; title: (null), subtitle: (null), body: (14) - iPhone - Tom Owen, summaryArgument: , summaryArgumentCount: 0, categoryIdentifier: , launchImageName: , threadIdentifier: , attachments: (
), badge: 0, sound: <UNNotificationSound: 0x600001ee92c0>,, trigger: <UNPushNotificationTrigger: 0x6000038fa780; contentAvailable: NO, mutableContent: NO>>>>]
Я пробовал много способов получить доступ к «словарю», один из следующих способов:
if let aps = aNotification.userInfo!["aps"] as? NSDictionary {
os_log(" aNotification.userInfo ok", log: osLog)
if let alert = aps["alert"] as? NSDictionary {
os_log("alert ok", log: osLog)
if let alertMessage = alert["body"] as? String {
os_log("body ok", log: osLog)
message = alertMessage
}
}
} else {
os_log("no aNotification.userInfo!", log: osLog)
}
Однако я продолжаю получать «no aNotification.userInfo!»
Как мне получить доступ к "телу: (14) - iPhone - Том Оуэн" с userInfo
?