Android 自定义标签页概览

自定义标签页是 Android 浏览器的一项功能,可让应用开发者直接在其应用内添加自定义浏览器体验。

自智能手机问世以来,加载 Web 内容就一直是移动应用的一部分,但旧版选项可能会给开发者带来挑战。启动实际浏览器对用户来说是一项无法自定义的重量级上下文切换,而 WebView 不支持 Web 平台的所有功能,不会与浏览器共享状态,并且会增加维护开销。

借助自定义标签页,用户可以在浏览时保持在应用内,从而提高互动度并降低用户放弃应用的风险。自定义标签页之所以能实现这一点,是因为它们直接由用户的首选浏览器提供支持,并会自动共享该浏览器提供的状态和功能。您无需编写自定义代码即可管理请求、权限授予或 Cookie 存储。

自定义标签页有哪些功能?

使用自定义标签页后,您的 Web 内容会在用户首选浏览器所使用的任何渲染引擎中加载。您可以在该页面中找到任何 API 或 Web 平台功能,也可以在“自定义”标签页中找到这些功能。他们的浏览会话、已保存的密码、付款方式和地址都会显示出来,就像他们已经习惯的那样。

我可以在“自定义”标签页中自定义哪些内容?

非常棒!借助自定义标签页,您可以对许多浏览器界面和用户体验进行精细控制。在应用中,您可以使用 intent 启动自定义标签页。当此 intent 被调用时,您可以向 CustomTabIntent 添加一些属性,以获得想要的确切体验。下面列出了您可以添加的一些自定义内容:

  • 自定义进入和退出动画,使其与应用的其余部分相匹配
  • 修改工具栏颜色以匹配应用的品牌
  • 颜色一致性,即使应用在浅色和深色主题之间切换,也能保持一致
  • 浏览器工具栏和菜单的自定义操作和条目
  • 控制自定义标签页的启动高度,实现在与网店互动时流式传输视频等操作

此外,用户可以最小化自定义标签页,以便与底层应用交互并随时恢复该标签页,而不会丢失继续行程的任何进度。这样,用户便可以关闭自定义标签页,并在 Web 应用和原生应用之间无缝执行多任务。自定义标签页默认启用此功能。

这远远不是全部。自定义标签页功能非常强大,并且正在积极开发中。每款浏览器都需要在这些功能推出后添加对这些功能的支持。虽然几乎所有产品都提供一定程度的支持,但务必要了解用户的浏览器中可能提供哪些功能或不可用的功能。请参阅功能对比表,快速查看各款热门 Android 浏览器是否支持不同功能。

您现在可以使用 GitHub 上的示例进行测试。

何时应使用自定义标签页?

加载网络内容没有单一的“正确”方式。在某些情况下,WebView 是合适的技术。例如,如果您仅在应用内托管自己的内容,或者需要直接从应用注入 JavaScript。如果您的应用会将用户定向到网域外的网址,则自定义标签页中的内置共享状态可能更适合。自定义标签页的其他优势包括:

  1. 安全性:自定义标签页使用 Google 的安全浏览功能来保护用户和设备免受危险网站的侵害。
  2. 性能优化:
    1. 在后台预热浏览器,同时避免从应用窃取资源。
    2. 通过提前推测加载网址来加快网页加载速度。
  3. 生命周期管理:启动自定义标签页的应用在标签页使用期间不会被系统逐出 - 其重要性会提升到“前台”级别。
  4. 共享 Cookie Jar 和权限模型,让用户无需登录已关联的网站,也不必重新授予已授予的权限。
  5. 自动填充等浏览器功能可开箱即用,帮助您更好地填写表单。
  6. 用户可以使用集成的返回按钮返回应用。

自定义标签页与 Trusted Web Activity

Trusted Web Activity 扩展了自定义标签页协议,并具有它的大部分优势。不过,它并非提供自定义界面,而是允许开发者在不使用任何界面的情况下打开浏览器标签页。建议希望在自己的 Android 应用中以全屏模式打开自己的渐进式 Web 应用的开发者使用此 API。

自定义标签页在哪些国家/地区提供?

自定义标签页是 Android 平台上浏览器支持的一项功能。此功能最初由 Chrome 45 版引入。大多数 Android 浏览器都支持该协议。

我们期待收到有关此项目的反馈、问题和建议,因此建议您在 crbug.com 上提交问题,并在 Twitter 上与 @ChromiumDev 联系。

开始使用

除了 GitHub 演示之外,还有许多指南可帮助您开始使用自定义标签页。

如有疑问,请查看 StackOverflow 上的 chrome-custom-tabs 标记。