如果该应用程序已经打开(后台),则我的应用程序可以成功处理苹果通用链接。但是,如果该应用程序尚未打开,那么当我在邮件中点击这样的链接时,该应用程序将打开,但我永远都不会收到application: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
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句