iOS:苹果通用链接如果应用程序未打开?
问题描述:
如果应用程序已经打开(背景),我的应用程序可以成功处理苹果通用链接。但是,如果应用程序尚未打开,那么当我点击邮件中的链接时,应用程序将打开,但我永远不会收到应用程序的回调:continueUserActivity ...(如果应用程序已经打开/中背景)...iOS:苹果通用链接如果应用程序未打开?
机智:
如果应用程序中背景,和我点击一个苹果通用链路上,譬如说,邮件应用程序,那么这个方法(这是苹果的文件说,实施以处理通用链接):
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
}
您需要发布您的代码,为了更彻底地解释一下我们为您排忧解难;) – brandonscript
@brandonscript我认为这是完全清楚,但我增加了更多 – Colin