Android 自定义标签页概览

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

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

借助自定义标签页,用户可以在浏览时留在应用内,从而提高互动度并降低用户放弃应用的风险。自定义标签页直接由用户偏好的浏览器提供支持,并自动共享该浏览器提供的状态和功能。您无需编写自定义代码来管理请求、权限授予或 Cookie 存储区。

自定义标签页能做些什么?

通过使用自定义标签页,您的 Web 内容会在用户首选浏览器所用的任何渲染引擎中加载。任何 API 或 Web 平台功能都可以在其中使用,并且可以在自定义标签页中使用。他们的浏览会话、已保存的密码、付款方式和地址都会像他们已经习惯的那样显示。

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

相当符合!借助自定义标签页,您可以精细地控制许多浏览器 chrome 和用户体验。在应用中,您可以使用 Intent 启动自定义标签页。调用此 intent 时,您可以向 CustomTabIntent 添加多个属性,以获得所需的精确体验。您可以添加的一些自定义项如下所示:

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

此外,用户可以最小化自定义标签页以与底层应用互动,并随时恢复自定义标签页,而不会丢失任何进度,从而继续他们的旅程。这样一来,用户就可以选择不关闭自定义标签页,从而在网页和原生应用之间无缝执行多项任务。自定义标签页默认启用此功能。

这与一切都相去甚远。自定义标签页功能非常强大,目前仍在积极开发中。每个浏览器都需要在这些功能推出时添加对它们的支持。虽然几乎所有浏览器都提供一定程度的支持,但了解用户浏览器中可能提供或不提供的功能非常重要。请参阅功能对比表,快速查看热门 Android 浏览器中不同功能的可用性。

您现在可以利用我们在 GitHub 上提供的示例进行测试。

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

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

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

自定义标签页与 Trusted Web Activity

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

哪些国家/地区的用户可以使用自定义标签页?

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

我们希望就此项目收集反馈、问题和建议,因此建议您在 crbug.com 上提交问题,并在 Twitter 上通过 @ChromiumDev 提出问题。

了解详情

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