自定义标签页非常适合直接在应用中打造自定义浏览器体验,但它并不是唯一的选择。自定义标签页基于intent 系统构建,是一组可配置的选项请求,会发送到最终用户的首选浏览器。各个浏览器可以自行实现各种选项。由于实现差异,不同 Android 浏览器提供的自定义标签页功能可能有所不同。
下面是对 Android 生态系统中部分浏览器的比较。大多数 Android 浏览器都提供一定程度的支持。这些表格并非详尽无遗,而是说明您可能会获得的支持级别。您应研究使用您的应用的用户的默认浏览器,并确保采用防御性编码。
CustomTabsIntent.Builder
CustomTabsIntent.Builder
用于创建自定义标签页。您可以通过多种方式配置自定义标签页,以便通过一系列内置方法(如下所列)尽可能无缝地将其与应用融合。
addDefaultShareMenuItem()
addDefaultShareMenuItem() 会向自定义标签页工具栏添加一个默认的分享按钮,以便用户通过设备上的各种应用分享当前网页。
addMenuItem()
添加菜单项。
addToolbarItem()
向自定义标签页添加操作按钮。您可以通过此方法添加多个按钮。
enableUrlBarHiding()
让网址栏在用户向下滚动页面时隐藏。
setActionButton()
设置在工具栏中显示的操作按钮,并采用默认的着色行为。
setCloseButtonIcon()
设置工具栏中显示的自定义关闭按钮。
setCloseButtonPosition()
设置自定义标签页的关闭按钮图标。
setColorScheme()
在自定义标签页中设置应应用于界面的配色方案。
setColorSchemeParams()
在自定义标签页中设置应应用于界面的配色方案。
setDefaultColorSchemeParams()
为指定的配色方案设置 CustomTabColorSchemeParams()
。这样,您就可以为浅色和深色配色方案指定两种不同的工具栏颜色。
setDefaultShareMenuItemEnabled()
设置是否向菜单中添加默认的“分享”项。
setExitAnimations()
设置任何退出动画。
setInitialActivityHeightPx()
使用默认的调整大小行为设置自定义标签页 activity 的初始高度(以像素为单位)。自定义标签页将像底部动作条一样运作。这通常称为“部分自定义标签页”。
setNavigationBarColor()
设置导航栏颜色。对低于 L 的 API 版本没有影响。
setNavigationBarDividerColor()
setSecondaryToolbarColor()
设置辅助工具栏的颜色。
setShareState()
设置应应用于自定义标签页的分享状态。
setShowTitle()
设置标题是否应显示在自定义标签页中。
setStartAnimations()
设置启动动画。
setToolbarColor()
设置工具栏颜色。在 Android L 及更高版本中,此颜色也会应用于状态栏。
setToolbarCornerRadiusDp()
以 dp 为单位设置工具栏的上角半径。
setUrlBarHidingEnabled()
设置网址栏是否应在用户向下滚动页面时隐藏。
CustomTabsClient
CustomTabsClient
是一个可选类,用于与 CustomTabsService
通信并从中创建 CustomTabsSession
。
warmup()
预热浏览器进程。
CustomTabsSession
CustomTabsSession
是一个可选类,您可以将其提供给 CustomTabsIntent.Builder()
的实例。使用时,您可以使用此类处理与自定义标签页的任何通信。
setEngagementSignalsCallback()
设置 EngagementSignalsCallback
,以接收与用户在标签页中与网页互动相关的事件的回调。
isEngagementSignalsApiAvailable()
返回 Engagement Signals API 是否可用。Engagement Signals API 的可用性可能会在运行时发生变化。
mayLaunchUrl()
告知浏览器未来可能会导航到某个网址。必须先指定最可能的网址。(可选)您可以提供其他可能的网址列表。系统会将其视为比第一个可能性更小,并且必须按优先级降序排序。系统可能会忽略这些额外的网址。之前对此方法的所有调用都将降低优先级。