如何确定应用程序被杀死后是从NotificationCenter(本地通知)打开应用程序还是从应用程序图标打开

时间:2019-02-07 19:49:02

标签: ios swift notifications nsnotificationcenter

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

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

但是从iOS 10开始不推荐使用此功能

[UIApplication.LaunchOptionsKey.loaclNotification] != nil)

苹果建议使用以下方法

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

}

但是,仅当应用程序处于前台或后台时才调用此方法。任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

  

如何通过按通知而不是按应用图标来了解是否已打开应用

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