通用链接未在 iOS 上跨子域触发

问题描述 投票:0回答:1

我们目前正在尝试实现通用链接,以便在我们的核心 iOS 应用程序之间导航用户,但最近遇到了困难,这让我很困惑。

App 1 是一款 iOS 应用程序,它向用户呈现基于 WebView 的仪表板,其中包含从子域传递的内容(例如

https://dashboard.domain.com/

当用户点击仪表板中 Web 内容中的按钮时,应用程序会向另一个子域和路径发出 url 请求(例如。

https://breakout.domain.com/go?foo=bar

此 URL 已注册为通用链接,应打开目标 iOS 应用程序 - App 2。问题是它最终会打开设备浏览器并尝试加载 url。

我们在

apple-app-site-association
托管了一个
https://breakout.domain.com/.well-known/
文件,并已在其中正确声明了路径和应用程序特定信息,并在
App 2
的权利中注册了 applinks:breakout.domain.com 域。

此外,我们知道我们的实现和配置是合理的,因为我们可以通过其他可测试的方式可靠地触发通用链接 URL(打开App 2)。

但是,当通用链接请求发起者源自上面第二段中提到的 App 1 的 WebView 时 - iOS 无法拦截 url 请求并将其视为任何其他 Web 链接。

我的第一个想法是 iOS 将启动器域视为与通用链接域相同。

然而,Apple 文档here 指出,使用子域应满足以下规则:网络请求不得源自与通用链接相同的域,以便触发拦截并打开目标应用程序。

因此,为了测试这一点,我们更改了仪表板上的按钮,以调用在不同顶级域(例如

https://breakout.new-domain.com/go?foo=bar
)之外运行的新通用链接,你知道吗 - 它有效。 应用程序2打开成功。

所以我想我的问题是,以前有其他人遇到过这个特定问题吗?我非常想知道一种解决方法(如果存在),它不需要我们使用唯一的顶级域来提供App 1App 2之间的通用链接的功能。

ios ios-universal-links
1个回答
0
投票

通用链接仅适用于内置 iOS 应用程序,例如 Safari 和消息。 Web 视图不支持通用链接。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.