当您从application(_ :, continue:?,restore?Handler :?)返回false时会发生什么?

Mis*_*cha 5 ios appdelegate ios-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
    }
}
Run Code Online (Sandbox Code Playgroud)

不,我想知道false从该方法返回时到底会发生什么。一开始我以为Safari会像没有启用通用链接那样简单地打开链接。但是,我发现我的应用程序仍处于打开状态,并且文档指出:

如果您未实现此方法,或者您的实现返回false,则iOS会尝试为您的应用创建一个使用URL打开的文档。

这到底是什么意思?

创建什么样的文档,我的应用程序如何收到通知?

小智 1

实际上,对于 continueUserActivity 的返回值的描述是:

返回 true 表示您的应用程序处理了该活动,或返回 false 让 iOS 知道您的应用程序未处理该活动。

如果您从此函数返回 YES,操作系统将了解不需要进一步处理 NSUserActivity - 您的应用程序已完成需要完成的所有操作。如果从此函数返回“否”,操作系统将了解可能已经发生了需要操作系统处理的活动,并且可能需要进行处理。

您可以在 Apple 的 Handoff 文档中获得有关所有这些的更多背景信息:https: //developer.apple.com/library/content/documentation/UserExperience/Conceptual/Handoff/HandoffFundamentals/HandoffFundamentals.html#//apple_ref/doc/uid /TP40014338