这片土地

Peter Conn
Peter Conn

Trusted Web Activity 周围有相当多的生态系统,很难看清所有内容之间的关系以及您应该使用哪些内容。本文希望能解决这一问题。

如果您刚开始接触可信网站活动,或者只是想了解目前应使用的一组推荐工具,请注意以下事项:

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

下一部分简要介绍了所有相互关联的项目。最后(对于非常好奇的用户),我们提供了一个历史记录部分,向您展示我们是如何走到今天的,以及我们计划在近期实现哪些目标。

库概览

下面简要介绍了您最终可能会使用的每个库:

  • androidx.browser,一个用于与用户设备上安装的浏览器交互的 Android 库。
  • Android 浏览器辅助程序:这是一个基于 androidx.browser 构建的库,可为 Trusted Web Activity 客户端提供便捷方法和合理的默认值。
  • Bubblewrap:一种工具,可让您无需接触任何 Java 代码,即可从 PWA 创建 Trusted Web Activity。

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

历史记录

Android 支持库

Android 支持库通过新的 API 和兼容性功能扩展了 Android 平台。它分布在多个软件包中,其中 Custom Tabs 支持库包含用于与用户系统上的浏览器互动的功能。Custom Tabs 支持库的开发主要在 custom-tabs-client GitHub 代码库中完成,所做更改会上游回传到 Android 支持库

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

由于 Trusted Web Activity 基于自定义标签页构建,因此它们的生命周期始于此 custom-tabs-client 库。当用户浏览应用开发者拥有的网站时,受信任的 Web activity 会移除自定义标签页顶栏。这样,您就可以将网站无缝集成到原生 Android 应用中,还可以创建由 Web 提供所有功能的应用。

AndroidX

Android 支持库后来更名为 AndroidX,它本身就是一项名为 JetPack 的更大计划的一部分,旨在改进开发者体验。因此,Custom Tabs 和 Trusted Web Activity 必须从 Custom Tabs 支持库迁移到新的 androidx.browser

我们在 custom-tabs-client 中编写的部分代码适用于可信 Web Activity 辅助类库,但不适用于 Android API。用于检查 Chrome 版本是否已过时并提示用户更新或决定如何存储数据的代码无法移至 AndroidX。因此,我们创建了一个替代库,用于包含无法添加到 androidx.browsercustom-tabs-client 的这些部分,于是 Android 浏览器帮助程序应运而生。

Android 浏览器帮助程序旨在包含可专门用于浏览器(不仅仅是 Chrome,我们也欢迎专门用于其他浏览器的代码)的代码,并且可以做出库不应做出的具体决策。我们借此机会将这两个库的角色进行了一般性分离:

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

正在引导

开发者很忙,有大量工作要做,还要赶各种截止期限。 为此,我们创建了两个工具,供用户启动 Trusted Web Activity。

第一个(也是最早的)是 svgomg-twa,它是一个托管在 GitHub 上的 Android 项目,用于启动可信 Web activity。它最初被设计为一个演示项目,后来演变为一个模板。用户可以克隆该代码库,修改 build.gradle 文件以指向自己的网站,构建该网站并生成 Trusted Web Activity,而无需接触任何 Java 代码。(让 Digital Asset Links 通过验证确实需要付出更多努力,如需了解详情,请点击此处。)

svgomg-twa 最初依赖于 custom-tabs-client,但后来改用 Android 浏览器帮助程序(并通过传递依赖于 androidx.browser)。

最新最亮眼的工具是 Bubblewrap,这是一个 Node.js 工具,可获取您的 Web 应用清单并为您生成 Trusted Web Activity。这是从现有 PWA 创建 Trusted Web Activity 的最简单方法,并且不需要任何 Android 开发知识。

近期

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

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

新开发者应改用 Bubblewrap 生成项目。如果您已在使用 svgomg-twa 并进行了一些重大修改,则可以继续使用,但不会收到更新。

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