[英]Android app link - Open URL from app to custom chrome tab
I have enabled the app link for my app, in some scenarios I want open URL custom chrome tab for some URLs.我已为我的应用启用了应用链接,在某些情况下,我希望为某些 URL 打开 URL自定义 chrome 选项卡。
CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
CustomTabsIntent customTabsIntent = builder.build();
builder.setShowTitle(true);
Bundle headers = new Bundle();
customTabsIntent.intent.putExtra(Browser.EXTRA_HEADERS, headers);
customTabsIntent.intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
customTabsIntent.launchUrl(context, Uri.parse(url));
As suggested in this flowing code can be used open chrome browser is there any way to do the same with custom chrome tab
正如此流动代码中所建议的,可以使用打开的chrome 浏览器是否有任何方法可以对custom chrome tab
执行相同的custom chrome tab
String data = "example.com/your_url?param=some_param"
Intent defaultBrowser =
Intent.makeMainSelectorActivity(Intent.ACTION_MAIN,
Intent.CATEGORY_APP_BROWSER);
defaultBrowser.setData(data);
startActivity(defaultBrowser);
You need to set package information to the intent of default custom tab handler.您需要将包信息设置为默认自定义选项卡处理程序的意图。 (Like chrome) (像铬)
val customTabsIntent: CustomTabsIntent = Builder()
...
.build()
customTabsIntent.intent.setPackage(getCustomTabsPackage(context))
private fun getCustomTabsPackage(context: Context): String? {
val packageManager: PackageManager = context.packageManager
val activityIntent = Intent(Intent.ACTION_VIEW, Uri.parse("http://"))
val resolvedActivityList: List<ResolveInfo> = packageManager.queryIntentActivities(activityIntent, 0)
return resolvedActivityList
.firstOrNull {
val serviceIntent = Intent()
serviceIntent.action = CustomTabsService.ACTION_CUSTOM_TABS_CONNECTION
serviceIntent.setPackage(it.activityInfo.packageName)
packageManager.resolveService(serviceIntent, 0) != null
}
?.activityInfo
?.packageName
}
More information https://developers.google.com/web/android/custom-tabs/best-practices#preparing_for_other_browsers更多信息https://developers.google.com/web/android/custom-tabs/best-practices#preparing_for_other_browsers
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.