作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我的应用程序使用应用程序链接在应用程序外部的浏览器中登录,并在登录完成后重定向回来。这适用于 android native 浏览器,但在我使用 Chrome 自定义选项卡时失败。用户已登录自定义选项卡并且未重定向回应用程序,所以我想知道是否有可能以与 native 浏览器相同的方式将应用程序链接与自定义选项卡一起使用?
list 配置
<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))
最佳答案
因为您的深层链接 url 类似于网站的 url,Chrome 自定义选项卡将始终尝试将其作为网页加载,而不是重定向。您可以做的是使用浏览器通常不支持的方案,例如 app-name://
那么您的主机可能是 redirect-to
那么这将起到什么作用将是
<data
android:host="redirect-to"
android:scheme="app-name" />
这样只有您的应用才能解析此 url。但请注意,当您使用这种类型的 url 时,它可能不会在某些应用程序(例如电子邮件)中显示为链接。
关于Android 应用链接不适用于 Chrome 自定义标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51244910/
我是一名优秀的程序员,十分优秀!