这片土地

彼得·康恩
Peter Conn

Trusted Web Activity 周围有相当多的生态系统,因此很难了解各个方面之间的关系以及您应该使用什么。本文希望能帮您解决这个问题。

如果您刚开始接触 Trusted Web Activity,或者只是想了解推荐工具集,请注意以下事项:

  • Bubblewrap:一种 NodeJS 工具,可供开发者创建和构建封装现有 PWA 的 Android APK。生成的应用由 Trusted Web Activity 提供支持,但这对开发者来说是透明的。无需拥有 Android 开发经验。 首先,请查看气泡封装文档
  • android-browser-helper:一个封装了 Trusted Web Activity 协议的 Android 库。 建议熟悉 Android 开发并希望将 Trusted Web Activity 用作其 Android 应用中的 activity 之一,或进行 Bubblewrap 不支持的自定义设置的开发者。如需开始使用 android-browser-helper,请查看文档和我们的演示

下一部分将简要介绍所有项目,相互之间相互影响。 最后,还有一个历史记录版块,用于向您展示我们的发展历程以及我们近期的计划。

库概览

下面简要概述了您可能最终使用的每个库:

  • androidx.browser - 一个用于与用户设备上安装的浏览器进行交互的 Android 库。
  • Android 浏览器帮助程序,一个基于 androidx.browser 构建的库,用于支持 Trusted Web Activity 客户端,可提供便捷方法和合理的默认设置。
  • Bubblewrap:利用 PWA 创建可信 Web Activity,而无需处理任何 Java 代码。

此外,以下每个库/工具都会取代一个旧库/工具:

历史记录

Android 支持库

Android 支持库通过新的 API 和兼容性功能扩展 Android 平台。它拆分为多个软件包,其中自定义标签页支持库可提供与用户系统上的浏览器互动的功能。自定义标签页支持库的开发主要在 custom-tabs-client GitHub 代码库中完成,相关更改已向上游传送回 Android 支持库

自定义标签页是一种使用浏览器显示网页的 Android activity。对开发者的主要好处是,它可以设置主题且具有关闭按钮,因此用户仍会留在开发者的应用中(而不是离开应用并享受完整的浏览体验)。作为一种 Android API,自定义标签页可以受任何浏览器支持,并且将使用用户的默认浏览器(不过开发者可以替换它)。

由于 Trusted Web Activity 是在自定义标签页的基础上构建的,因此它们都是从这个 custom-tabs-client 库开始的。当用户浏览应用开发者拥有的网站时,Trusted Web Activity 会移除 Custom Tabs 顶栏。这样,您就可以将网站无缝集成到原生 Android 应用中,并可用于创建所有功能均由 Web 提供的应用。

AndroidX

Android 支持库后来更名为 AndroidX,这本身就是我们为改善开发者体验 (JetPack) 所付出的努力之一。因此,自定义标签页和 Trusted Web Activity 必须从自定义标签页支持库移至新的 androidx.browser

我们在 custom-tabs-client 中编写的一些代码适用于 Trusted Web Activity 辅助类库,但不适用于 Android API。用于处理过时 Chrome 版本以及提示用户更新或就应如何存储数据做出决策的代码无法迁移到 AndroidX。因此,我们创建了一个备用库来包含 custom-tabs-client 中无法进入 androidx.browser 的部分,从而催生了 Android 浏览器帮助程序

Android 浏览器帮助程序旨在包含特定于浏览器(不仅限于 Chrome,我们接受其他浏览器专用代码)的代码,并可以做出库不应使用的具体代码。我们借此机会大致区分了这两个库的角色:

  • androidx.browser 包含与用户系统上的浏览器进行交互的基本构建基块。
  • Android 浏览器帮助程序包含易于使用且合理的默认实现。

正在引导

开发者们通常都很忙,要做大量的工作并有相应的截止日期。为此,我们打造了两个工具,供用户引导其 Trusted Web Activity。

第一个(也是最旧)是 svgomg-twa,它是 GitHub 托管的 Android 项目,用于启动 Trusted Web Activity。 最初设计是一个演示项目,后来演变为模板。用户可以克隆该代码库并修改 build.gradle 文件,使其指向自己的网站,从而构建网站并生成 Trusted Web Activity,而无需处理任何 Java 代码。 (完成 Digital Asset Links 的验证需要花费更多精力,请点击此处了解详情。)

svgomg-twa 最初依赖于 custom-tabs-client,但后来迁移到 Android 浏览器帮助程序(以及 androidx.browser)。

最新最棒的工具是 Bubblewrap,这是一款 Node.js 工具,可呈现您的 Web 应用清单并为您生成受信任的 Web 活动。这是通过现有 PWA 创建 Trusted Web Activity 的最简单方法,不需要具备任何 Android 开发知识。

近期

我们弃用 svgomg-twa 的原因有两个:

  • Bubblewrap 实质上会为开发者生成填充的 svgomg-twa。它会以交互方式执行此操作,并且可以从 Web 应用清单(PWA 可能已具有)获取配置。
  • 如果开发者需要参考信息,了解如何从头开始启动自己的 Trusted Web Activity 项目,可以查看 Android 浏览器帮助程序 demos 目录。

新开发者应改用 Bubblewrap 生成项目。如果您已在使用 svgomg-twa 并进行了一些重大修改,则可以继续这样做,但无法获得更新。

我们计划让 Bubblewrap 尽可能发挥功能,因此,如果缺少明显的功能,或者您遇到 bug,请随时创建问题