由于默认情况下禁用支持的网址,Android 深层链接无法正常工作

Jac*_*son 35 android

我的应用程序过去可以很好地使用深层链接,我没有更改应用程序中的任何内容,但似乎发生了变化的是,当新安装应用程序时,在应用程序设置中 - 设置为默认值 - 支持的网址是我的网站网址深层链接应该在默认情况下禁用的情况下工作,我必须手动启用它才能使其工作。

我怎样才能让它安装并自动启用它

May*_*ate 14

发生这种情况是由于 Android 12 最近引入的更改。根据文档:

从 Android 12(API 级别 31)开始,仅当您的应用获得批准用于该 Web Intent 中包含的特定域时,通用 Web Intent 才会解析为应用中的 Activity。如果您的应用未获域批准,则 Web 意图将解析为用户的默认浏览器应用。

在 Android 12 之前,打开作为深层链接添加的通用 Web URL 会AndroidManifest显示一个对话框,用于在应用程序和浏览器之间进行选择。从 Android 12 开始,开发者预计将:

  1. 添加android:autoVerify="true"到 Web URL 意图,Android 将验证该域是否与同一应用程序关联。这些关联的深层链接也称为 Android App Link.s ( doc link )
  2. 通过在以下位置托管数字资产链接 JSON 文件来声明您的网站和意图过滤器之间的关联:( https://domain.name/.well-known/assetlinks.jsondoc link )

此后,当应用程序安装并触发深层链接(Android App Link)时,Android将验证关联并直接在应用程序中打开深层链接(它也不会在意图中显示应用程序选择器对话框。)

  • 还有一个步骤 3)不要在同一个 <intent-filter> 中将方案 `https` 与自定义方案(如 `myapp`)混合。它杀死了我们项目中的应用程序链接。 (2认同)

ami*_*gur 8

在花了一整天的时间解决这些问题之后,这是我的解决方案:对我来说,我的 apk 的包名称与 my-domain.com/.well-known/assetlinks.json 中的包名称不同

我用这个服务检查后才发现

如果您遇到这个问题我的建议

  1. 使用 URL 检查您的 .wellknown 是否有错误(替换https://my-domain.com为您的域名)

https://digitalassetlinks.googleapis.com/v1/statements:list?source.web.site=https://my-domain.com&relation=delegate_permission/common.handle_all_urls

  1. 安装 apk 后,使用这些命令检查深层链接验证是否正常,如果未验证,它们将在切换开关关闭的情况下出现。

3.如果您仍然遇到该问题,您可以检查设备的 adb logcat 并查看此验证失败的错误原因。