当你从`application(_:, continue:​, restore​Handler:​)`返回`false`时会发生啥?

Posted

技术标签:

【中文标题】当你从`application(_:, continue:​, restore​Handler:​)`返回`false`时会发生啥?【英文标题】:What happens when you return `false` from `application(_:, continue:​, restoration​Handler:​)`?当你从`application(_:, continue:​, restore​Handler:​)`返回`false`时会发生什么? 【发布时间】:2017-03-23 13:38:32 【问题描述】:

我在我的应用中启用了通用链接。处理这些链接的相应委托调用是

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 状态:

如果您没有实现此方法,或者您的实现返回 falseios 会尝试为您的应用创建一个文档以使用 URL 打开。

这究竟是什么意思?

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

【问题讨论】:

你找到阻止应用打开的方法了吗? 不,据我记忆中没有……也许现在有更多可用的文档/教程? 只找到了这个。 ***.com/questions/58217784/… 【参考方案1】:

其实对于 continueUserActivity 的返回值的描述是:

返回 true 表示您的应用处理了 Activity,返回 false 则让 iOS 知道您的应用没有处理该 Activity。

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

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

【讨论】:

以上是关于当你从`application(_:, continue:​, restore​Handler:​)`返回`false`时会发生啥?的主要内容,如果未能解决你的问题,请参考以下文章

当你从美梦中惊醒的时候,你该做什么?

当你从谷歌地图API中点击地图中的内置位置(不是标记)时,如何自定义弹窗的内容?

Android -- 带你从源码角度领悟Dagger2入门到放弃

爱尔兰医疗机构HSE感染Conti,被勒索近2000万美元

20180624_Git分支管理之多人协作

JavaSE_坚持读源码_HashMap对象_get_Java1.7