Chrome CustomTabs的使用

本文介绍了ChromeCustomTabs的概念及其应用场景,对比了它与Chrome和WebView的区别,并提供了如何在Android应用中集成和使用的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Chrome CustomTabs是什么
Chrome CustomTabs为应用程序提供了一种方式,可以自定义并与之互动的Chrome Activity。 这使得Web内容感觉像是应用程序的一部分,同时保留了完整Web浏览器的完整功能和性能。
这句话的理解是:如果您想在应用中打开一个网页,你可以通过 Chrome Custom Tabs 来打开 Chrome 浏览器的一个自定义 Tab 来显示该网页,你可以自定义这个 Tab 的一些属性来保持良好的用户体验,并且让用户感觉这个自定义 Tab 就是您应用的一部分
Chrome CustomTabs 介绍链接(原文)
Chrome CustomTabs 原文的翻译
Google 官方示例: CustomTabs Sample
Note:
Chrome CustomTabs支持Chrome 浏览器45版本以上,而国内 Android 手机大部分用的不是 Chrome 浏览器,要用到该项功能需要一个支持Chrome CustomTabs的浏览器

Chrome CustomTabs的应用场景

1.显示的网页内容是由自己控制的,并且网页内容需要和 Android 组件交互(比如通过 JavaScript 接口来调用 Android 系统的一些功能),这种情况下你还需要用 WebView 来实现;
2.显示的网页内容不用自己操作等其他情况都可以用 Chrome Custom Tabs 来实现

Chrome Custom Tabs 与 Chrome,WebView的对比

这里写图片描述
(网上找的图>–<)
Chrome CustomTabs的使用
在app目录下build.gradle中

compile 'com.android.support:customtabs:27.1.1'

接着自定义CustomTabsIntent,查看该类,用 Builder模式来构建
示例如下:

CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
 //Sets the toolbar color.
 builder.setToolbarColor(getResources().getColor(R.color.color_title));
 Bitmap closeBitmap = BitmapFactory.decodeResource(getResources(),R.drawable.back);
 builder.setCloseButtonIcon(closeBitmap);// 关闭按钮
 builder.setShowTitle(true); //显示网页标题
 Bitmap icon = BitmapFactory.decodeResource(getResources(),R.drawable.icon_link_middle);
 PendingIntent pendingIntent =  createPendingIntent(1);
 builder.setActionButton(icon,"Collection",pendingIntent); //增加操作按钮
 //自定义 Activity 转场 动画
 builder.setStartAnimations(this, R.anim.push_left_in, R.anim.push_left_out);
 builder.setExitAnimations(this, R.anim.push_right_in,R.anim.push_right_out);
 CustomTabsIntent customTabsIntent = builder.build();
 customTabsIntent.launchUrl(SimpleNewDetailsActivity.this, Uri.parse(url));

这里写图片描述
上面的是基本用法,如果想深入的话可以参考下面的文章,就不一 一赘述了

参考文章
提升体验-支持Chrome Custom Tabs
Android 开发小工具之:Custom Tabs
Chrome custom tabs:在浏览器与本地应用之间流畅的切换
Chrome Custom Tabs最佳实践
Demo: https://github.com/hitherejoe/Tabby

### 如何在Android中使用Chrome Custom Tabs打开网页 为了在Android应用程序中利用Chrome Custom Tabs功能,开发者可以借助Google提供的`CustomTabsIntent`类来实现更高效的用户体验。以下是关于如何配置并启动Chrome Custom Tabs的具体方法: #### 配置依赖项 首先,在项目的`build.gradle`文件中添加必要的依赖项以支持Chrome Custom Tabs的功能[^1]。 ```gradle implementation 'androidx.browser:browser:1.4.0' ``` 此依赖项提供了访问`CustomTabsIntent`所需的API接口。 #### 创建和初始化CustomTabsIntent对象 通过创建一个新的`CustomTabsIntent.Builder()`实例,可以自定义浏览器的行为以及外观设置。例如,可以通过调用`.setShowTitle(true)`显示页面标题或者通过`.addDefaultShareMenuItem()`添加默认分享选项[^3]。 下面是一个简单的代码示例展示如何构建一个基本的`CustomTabsIntent`对象: ```java import androidx.browser.customtabs.CustomTabsIntent; // 初始化CustomTabsIntent CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder() .setToolbarColor(ContextCompat.getColor(context, R.color.primary)) .setShowTitle(true) .enableUrlBarHiding() // 自动隐藏网址栏 .build(); ``` #### 打开外部链接 一旦完成了上述准备工作之后,就可以通过调用`customTabsIntent.launchUrl(context, Uri.parse(url))`方法来加载指定的目标URL地址[^2]。 完整的Java代码如下所示: ```java public void openInCustomTab(String url, Context context){ CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder() .setToolbarColor(ContextCompat.getColor(context, R.color.primary)) .setShowTitle(true) .enableUrlBarHiding() .build(); customTabsIntent.launchUrl(context, Uri.parse(url)); } ``` 对于Kotlin开发人员来说,则可采用类似的逻辑结构编写相应的函数版本: ```kotlin fun openInCustomTab(url: String, context: Context) { val builder = CustomTabsIntent.Builder() val customTabsIntent = builder.apply { setToolbarColor(ContextCompat.getColor(context, R.color.primary)) setShowTitle(true) enableUrlBarHiding() }.build() customTabsIntent.launchUrl(context, Uri.parse(url)) } ``` 以上就是基于Android平台下运用Chrome Custom Tabs技术开启外部网站链接的主要流程介绍[^5]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值