应用被杀死时如何判断应用是从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
。如果用户点击了您的通知,它将被调用,如果它不是 运行,则启动您的应用程序。
我的应用收到本地通知不是远程通知。当应用程序被杀死时,我如何知道应用程序是否通过按通知而不是应用程序图标打开(不是 运行 在后台或前台)。以前,我使用以下方法
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
。如果用户点击了您的通知,它将被调用,如果它不是 运行,则启动您的应用程序。