我的应用程序收到本地通知,而不是远程通知。我如何知道应用程序被杀死(不是在后台或前台运行)时是否通过按通知而不是通过应用程序图标打开了应用程序。以前我是用这种方法
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) {
}
但是,仅当应用程序处于前台或后台时才调用此方法。任何帮助将不胜感激
答案 0 :(得分:1)
如何通过按通知而不是按应用图标来了解是否已打开应用
如您所说,实现UNUserNotificationCenterDelegate方法didReceive
。如果用户点击了您的通知,它将被调用,如果您的应用未运行,则会启动您的应用。