自定义标签页是直接在应用内打造自定义浏览器体验的理想选择,但它们并不是一成不变的。自定义标签页基于 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
。
预热()
预热浏览器进程。
CustomTabsSession
CustomTabsSession
是一个可选类,您可以提供给 CustomTabsIntent.Builder()
实例。使用此类时,您可以使用该类处理与自定义标签页的任何通信。
setEngagementSignalsCallback()
设置 EngagementSignalsCallback
,以接收与用户与标签页中的网页互动相关的事件的回调。
isEngagementSignalsApiAvailable()
返回 Engagement Signals API 是否可用。Engagement Signals API 的可用性可能会在运行时发生变化。
MayLaunchUrl()
告知浏览器未来可能会导航到某个网址。必须先指定最可能的网址。您还可以选择提供其他可能网址的列表。这些逻辑被视为不可能首次出现,且必须按优先级顺序降序排列。这些附加网址可能会被忽略。之前对此方法的所有调用都将降低优先级。