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 }