Android深层链接-允许在组织域上使用assetlinks.json和子域URL?

问题描述

我已经使用Android App Studio的App Links Assistant将我的URL映射到MainActivity.kt,并且我可以单击电子邮件中的链接以在模拟器中打开我的应用程序。

精确声明的网址映射,例如https://myorg.com/open-in-app,根据需要打开应用。

如果我通过实现HTTPS链接包装的电子邮件服务传递电子邮件,则必须使用子域。因此,例如,包装的链接可能看起来像

https://track.myorg.com/open-in-app/xyzzy

在iOS / Xcode中,我可以为给定应用设置多个域关联,并为here中所述的子域设置通配符。 iOS从子域的组织域的apple-app-site-association路径获取/.well-kNown文件。 Apple建议在第一个实例here中使用组织域,这对于在多个子域上支持同一应用非常方便。

注意:在子域上托管assetlinks.json文件可能,但是这样做比较复杂(例如,使用CDN)。 https://track.myorg.com通常映射到电子邮件服务,该服务将重定向登录页面。对于未使用该应用程序的所有人,该链接将在其浏览器中打开。

在Android中,是否存在等效项,即将assetlinks.json文件托管在组织域中的某个位置上,并且仍然深链接到具有子域的URL?

解决方法

在Android Studio模拟器(设备Pixel 2,Android API级别30)上进行测试。

assetlinks.json文件可以从链接的组织域或链接的实际(子域)中选取。

子域还可以通过301重定向工作,这对于某些CDN(例如CloudFlare)是必需的。其他人(例如AWS CloudFront)可以直接托管文件。

另请参阅:this article