可信网络活动 (Trusted Web Activities) 的设置可能会有些复杂,尤其是当您只想显示您的网站时。本指南将带您完成创建一个使用可信网络活动的基本项目的过程,并涵盖所有需要注意的难点。
读完本指南后,您将:
- 使用 Bubblewrap 构建一个使用可信网络活动并能通过验证的应用程序。
- 了解何时使用您的签名密钥。
- 能够确定您的 Android 应用程序构建时所使用的签名。
- 了解如何创建基础的 数字资产链接 (Digital Asset Links) 文件。
要遵循本指南,您需要:
- 开发计算机上安装了 Node.js 10 或更高版本
- 已连接并设置为开发模式的 Android 手机或模拟器(如果使用实体手机,请启用 USB 调试)
- 您的开发手机上安装了支持可信网络活动的浏览器
- 您希望在可信网络活动中查看的网站
可信网络活动允许您的 Android 应用程序启动一个全屏浏览器标签页,且不显示任何浏览器界面。此功能仅限于您拥有的网站,您可以通过设置数字资产链接来证明所有权。我们将在稍后详细讨论。
当您启动可信网络活动时,浏览器会检查数字资产链接是否匹配,这称为验证。如果验证失败,浏览器将回退并以自定义标签页 (Custom Tab) 的形式显示您的网站。
安装并配置 Bubblewrap
Bubblewrap 是一套用于 Node.js 的库和命令行工具 (CLI),它帮助开发者使用可信网络活动在 Android 应用程序内生成、构建和运行渐进式 Web 应用 (PWA)。
可以使用以下命令安装 CLI:
设置环境
首次运行 Bubblewrap 时,它会主动提议自动下载并安装所需的外部依赖项。我们建议允许该工具执行此操作,因为这能确保依赖项配置正确。请查看 Bubblewrap 文档,了解如何使用现有的 Java 开发工具包 (JDK) 或 Android 命令行工具安装。
初始化并构建项目
通过运行 init 命令来初始化封装 PWA 的 Android 项目:
Bubblewrap 将读取 Web 清单 (Web Manifest),要求开发者确认在 Android 项目中使用的值,并使用这些值生成项目。项目生成后,通过运行以下命令生成 APK:
运行
构建步骤将输出一个名为 app-release-signed.apk 的文件。该文件可以安装在开发设备上进行测试,或上传到 Play 商店进行发布。
Bubblewrap 提供了一个在本地设备上安装和测试应用程序的命令。在开发设备连接到计算机的情况下,运行:
或者,也可以使用 adb 工具。
注意:**adb** 命令行工具位于 **android_sdk/platform-tools/** 下的 Android 命令行工具中。
此时,应用程序应可在设备启动器上找到。打开应用程序时,您会发现网站是以自定义标签页而不是可信网络活动的形式启动的,这是因为我们尚未设置数字资产链接验证,但首先……
Bubblewrap 的图形用户界面 (GUI) 替代方案
PWA Builder 提供了一个图形用户界面,它使用 Bubblewrap 库来驱动可信网络活动项目的生成。在这篇博文中,可以找到更多关于如何使用 PWA Builder 创建在 Android 中打开您的 PWA 的应用程序的说明。
关于签名密钥的说明
数字资产链接会考虑 APK 的签名密钥,验证失败的一个常见原因是使用了错误的签名。(请记住,验证失败意味着您的网站将以页面顶部带有浏览器界面的自定义标签页形式启动。)当 Bubblewrap 构建应用程序时,会使用 init 步骤期间设置的密钥创建 APK。但是,当您在 Google Play 中发布应用时,根据您处理签名密钥的方式,系统可能会为您创建另一个密钥。详细了解签名密钥及其与 Bubblewrap 和 Google Play 的关系。
设置您的资产链接文件
数字资产链接本质上由您网站上的一个指向您应用的文件,以及您应用中指向您网站的一些元数据组成。
创建 assetlinks.json 文件后,将其上传到您网站的 .well-known/assetlinks.json(相对于根目录),以便浏览器能够正确验证您的应用。查看关于数字资产链接的深度解析,以获取有关其与签名密钥关系的更多信息。
检查您的浏览器
可信网络活动将尝试遵循用户选择的默认浏览器。如果用户的默认浏览器支持可信网络活动,则会启动它。如果不支持,但安装了其他支持可信网络活动的浏览器,则会选择该浏览器。最后,默认行为是回退到自定义标签页模式。
这意味着,如果您在调试与可信网络活动相关的问题,应确保您使用的正是您预想中的浏览器。您可以使用以下命令检查当前正在使用的浏览器:
后续步骤
希望通过本指南,您已经能够运行可信网络活动,并具备了在验证失败时进行调试所需的知识。如果还有问题,请查看更多面向 Web 开发者的 Android 概念,或在 这些文档的 GitHub 上提交问题。
对于后续步骤,我建议您先为您的应用创建一个图标。完成之后,您可以考虑将应用部署到 Play 商店。