首页 > 解决方案 > 如果不满足某个条件,你怎么能忽略一个通用链接?

问题描述

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

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

假设我点击了一个链接https://company.com/?query1=123

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

我以为我只能falsecontinue:restorationHandler中返回,但这并不能阻止 iOS 应用程序打开。

标签: iosappdelegateios-universal-links

解决方案


false从返回application(_:continue:restorationHandler:)不会导致 URL 被传递回 Safari(正如您所发现的那样)。该文档指出:

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

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

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


推荐阅读