应用被杀死时如何判断应用是从NotificationCenter(Local Notification)打开还是从应用图标打开

How to determine whether the app is opened from NotificationCenter (Local Notification) or the app icon when app is killed

我的应用收到本地通知不是远程通知。当应用程序被杀死时,我如何知道应用程序是否通过按通知而不是应用程序图标打开(不是 运行 在后台或前台)。以前,我使用以下方法

 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    if ((launchOptions?[UIApplication.LaunchOptionsKey.loaclNotification] != nil))
    {
        print("here")
    }
 }

但是从 iOS10

开始不推荐使用此函数
[UIApplication.LaunchOptionsKey.loaclNotification] != nil)

苹果文档建议使用以下方法。

 func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {

}

只有当应用程序在前台或后台时才会调用此方法。任何帮助将不胜感激

How can I know if the app is opened by pressing the notification and not the app icon

如你所说,实现UNUserNotificationCenterDelegate方法didReceive。如果用户点击了您的通知,它将被调用,如果它不是 运行,则启动您的应用程序。