Android应用程序链接不适用于Chrome自定义标签

use*_*050 5 android kotlin applinks chrome-custom-tabs

我有一个应用程序,该应用程序使用应用程序链接在应用程序外部的浏览器中登录,并在登录完成后重定向回。这在android本机浏览器上正常运行,但是在我使用Chrome自定义标签时失败。用户已登录自定义选项卡,但未重定向回应用程序,因此我想知道是否可以以与本机浏览器相同的方式将应用程序链接与自定义选项卡一起使用?

清单配置

<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />

<data
    android:host="my-host"
    android:scheme="https" />
Run Code Online (Sandbox Code Playgroud)

本机浏览器中的有效实现

val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
ContextCompat.startActivity(context, intent, null)
Run Code Online (Sandbox Code Playgroud)

使用Chrome自定义标签无法重定向

val customTabsIntent = CustomTabsIntent.Builder()
    .build()

customTabsIntent.launchUrl(context, Uri.parse(url))
Run Code Online (Sandbox Code Playgroud)

Smi*_*ile 3

由于您的深层链接网址类似于网站的网址,因此 Chrome 自定义选项卡将始终尝试将其作为网页加载,而不是重定向。您可以做的是使用浏览器通常不支持的方案,就像app-name://您的主机一样,redirect-to所以这将是

 <data
  android:host="redirect-to"
  android:scheme="app-name" />
Run Code Online (Sandbox Code Playgroud)

这样,只有您的应用程序才能解析此网址。但请注意,当您使用此类 URL 时,它可能不会在电子邮件等某些应用程序中显示为链接。