我在我的应用中启用了Universal Links.处理这些链接的相应委托调用是
func application(_ application: UIApplication,continue userActivity: NSUserActivity,restorationHandler: @escaping ([Any]?) -> Void) -> Bool { if canHandle(userAcitivity) { // Handle the universal link. } else { // ⛔️ Don't handle the universal link. return false } }
不,我想知道当我从这个方法返回false时到底发生了什么.一开始我认为Safari会简单地打开链接,就像没有启用通用链接一样.但是,我认为我的应用程序仍然打开,documentation声明:
If you do not implement this method or if your implementation returns
false
,iOS tries to create a document for your app to open using a URL.
这到底是什么意思?
创建了什么类型的文档以及我的应用程序如何通知?
解决方法
实际上,对于continueUserActivity,返回值的描述是:
Returns true to indicate that your app handled the activity or false to let iOS know that your app did not handle the activity.
如果您从此功能返回YES,操作系统将理解不需要进一步处理NSUserActivity – 您的应用程序已完成了所有需要完成的操作.如果从此函数返回NO,操作系统将了解可能已发生需要OS处理的活动,可能需要进行处理.
你可以在Apple的Handoff文档中获得更多关于这一切的背景知识,这里是:https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/Handoff/HandoffFundamentals/HandoffFundamentals.html#//apple_ref/doc/uid/TP40014338