iOS:苹果通用链接,如果应用程序未打开?

如果应用程序已经打开(后台运行),我的应用程序可以成功处理苹果通用链接。 但是,如果应用程序尚未打开,那么当我点击这样的链接,比如邮件时,应用程序会打开,但我从来没有得到应用程序的回调:continueUserActivity …(如果应用程序已经打开,我会这样做)中背景)…

以机智:

如果应用程序是后台运行的,我点击了一个苹果通用链接,比如邮件应用程序,那么这个方法(苹果的文档说这是为了处理通用链接):

optional func application(_ application: UIApplication, continueUserActivity userActivity: NSUserActivity, restorationHandler restorationHandler: ([AnyObject]?) -> Void) -> Bool 

获取调用。 如果应用程序没有运行(我强制关闭它),那么当我点击链接时,该方法不会被调用,但应用程序已打开。

这应该是这样的吗?


基于MCMatan的线索,您必须在didFinishLaunchingWithOptions中执行类似的操作,然后将调用continueUserActivity:

 if let userActivityDict = launchOptions?[UIApplicationLaunchOptionsUserActivityDictionaryKey] as? NSDictionary, activityType = userActivityDict[UIApplicationLaunchOptionsUserActivityTypeKey] as? String where activityType == NSUserActivityTypeBrowsingWeb { return true } 

你是对的。 如果应用程序不在后台,则不会调用“continueUserActivity”。

相反, application:didFinishLaunchingWithOptions将调用以下信息:

 let activityDic = launchOptions?[UIApplicationLaunchOptionsUserActivityDictionaryKey] if let isActivityDic = activityDic { // Continue activity here }