如果不满足某个条件,你怎么能忽略一个通用链接?

Posted

技术标签:

【中文标题】如果不满足某个条件,你怎么能忽略一个通用链接?【英文标题】:How can you ignore a universal link if a certain condition is not met? 【发布时间】:2021-08-30 15:52:01 【问题描述】:

我们目前支持通用链接的通配符。所以我的应用链接看起来像:applinks:*.company.com

假设我只想处理一个链接,如果它是https://company.com/?query1=abc

假设我点击的是https://company.com/?query1=123的链接

由于不满足条件,我想忽略此链接并阻止我的 ios App 响应它。这可能吗?

我以为我只能在continue:restorationHandler 中返回false,但这并不妨碍iOS 应用程序打开。

【问题讨论】:

如果您的应用无法处理 URL,它必须在 URL 上调用 open 以将用户返回到 safari。 您的应用打开的通用链接永远不会在您的应用中中打开。用户仍会看到您的应用打开,然后弹回 Safari。 @Paulw11 不错的推荐。我认为由于某种原因这会导致递归调用,但看起来并没有。想要提交它作为答案,我会接受吗? 【参考方案1】:

application(_:continue:restorationHandler:) 返回 false 不会导致 URL 被传递回 Safari(如您所见)。文档指出:

如果你没有实现这个方法或者你的实现返回 false,iOS 会尝试为你的应用创建一个文档以使用 URL 打开

所以返回 false 只会导致 iOS 尝试以不同的方式启动您的应用。

您可以拨打open(_:options:completionHandler:) 并传递您收到的网址。然后该 URL 将在 Safari 中打开; iOS 不会向您的应用传递您的应用自行打开的通用链接,因为这可能会造成无限循环。

【讨论】:

以上是关于如果不满足某个条件,你怎么能忽略一个通用链接?的主要内容,如果未能解决你的问题,请参考以下文章

条件化bean

Codeforces Global Round 9 B. Neighbor Grid (构造,贪心)

Laravel 刀片 - 如果满足条件,则添加一个类

支付宝综合评估不满足,怎么解决?

python中的if语句有哪些?

RxSwift - 如果满足条件,则阻止/停止/忽略事件