2016-08-03 113 views
0

如果应用程序已经打开(背景),我的应用程序可以成功处理苹果通用链接。但是,如果应用程序尚未打开,那么当我点击邮件中的链接时,应用程序将打开,但我永远不会收到应用程序的回调: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 
} 
+0

您需要发布您的代码,为了更彻底地解释一下我们为您排忧解难;) – brandonscript

+0

@brandonscript我认为这是完全清楚,但我增加了更多 – Colin

回答

3

你是正确的。如果应用程序不在后台,“continueUserActivity”将不会被调用。

相反,application:didFinishLaunchingWithOptions将与信息,请致电:

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