首页 > 解决方案 > 检测应用程序是否通过点击本地通知 Swift 启动

问题描述

我想知道如何检测我的应用程序是否是从用户点击本地通知启动的。

我目前使用的方法userNotificationCenter(_:didReceive:withCompletionHandler:)我的应用程序正确检测到应用程序是从使用此方法的通知启动的,仅当应用程序仍处于活动状态时。如果我通过在应用程序切换器中向上滑动来结束应用程序,则点击通知会打开应用程序,但不会在userNotificationCenter(_:didReceive:withCompletionHandler:).

我之前设置UNUserNotificationCenter.current().delegateself. viewDidLoad()有人说要设置它application(_:didFinishLaunchingWithOptions:),我尝试这样:

func application(_ application: UIApplication, willFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
    
    UNUserNotificationCenter.current().delegate = self
    
    return true
}

但是,问题仍然存在。

我的问题:我如何检测我的应用程序是否是通过用户点击本地通知启动的,该应用程序是活动的还是非活动的?我正在使用 swift 5 和 Xcode 13。

标签: iosswiftxcodeswift5

解决方案


查看options您的场景委托willConnect方法或(如果没有场景委托)您的应用委托willFinishLaunching方法。这会告诉您您是如何启动的。


推荐阅读