我有一个应用程序,它使用应用程序链接在应用程序之外的浏览器中登录,并在登录完成后重定向回来。 这适用于安卓原生浏览器,但在我使用 Chrome 自定义标签页时失败。用户登录自定义选项卡而不是重定向回应用程序,所以我想知道是否可以 使用带有自定义选项卡的应用程序链接的方式与使用本机浏览器的方式相同?
清单配置
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="my-host"
android:scheme="https" />
在本机浏览器中工作实现
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
ContextCompat.startActivity(context, intent, null)
使用 Chrome 自定义标签页重定向失败
val customTabsIntent = CustomTabsIntent.Builder()
.build()
customTabsIntent.launchUrl(context, Uri.parse(url))
由于您的深度链接网址与网站的网址类似,因此 Chrome 自定义标签页将始终尝试将其作为网页加载,而不是重定向。您可以做的是使用浏览器通常不支持的方案,例如app-name://
然后您的主机可能会redirect-to
因此,这将
<data
android:host="redirect-to"
android:scheme="app-name" />
这样,只有您的应用程序才能解析此 URL。但请注意,当您使用这种类型的 url 时,它可能不会在某些应用程序(如电子邮件(中显示为链接。