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

时间:2017-03-23 13:38:32

标签: 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
    }
}

不,我不知道当我从这个方法返回false时到底发生了什么。一开始我认为Safari会简单地打开链接,就像没有启用通用链接一样。但是,我认为我的应用仍处于打开状态且documentation处于状态:

  

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

这究竟是什么意思?

创建了哪种文档以及如何通知我的应用程序?

1 个答案:

答案 0 :(得分:0)

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

  

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

如果您从此功能返回YES,操作系统将会理解不需要进一步处理NSUserActivity - 您的应用已完成了所有需要完成的工作。如果从此函数返回NO,操作系统将理解可能已发生需要OS处理的活动,可能需要处理。

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