跳到主要内容
版本:v7

构建渐进式 Web 应用

Capacitor 对渐进式 Web 应用有一流支持,使你能够轻松构建一个在 iOS 和 Android 上原生运行,同时在 Web 上作为移动 Web 应用或"渐进式 Web 应用"运行的应用。

什么是渐进式 Web 应用?​

简单来说,渐进式 Web 应用(PWA)是一种利用现代 Web 能力为用户提供类似原生应用体验的 Web 应用。这些应用部署在传统的 Web 服务器上,可以通过 URL 访问,并且可以被搜索引擎索引。

实际上,渐进式 Web 应用只是一个网站的另一种说法,该网站针对移动性能进行了优化,并利用新可用的 Web API 来提供类似于传统原生应用的功能,如推送通知和离线存储。

Capacitor 和渐进式 Web 应用​

Capacitor 对渐进式 Web 应用和原生应用都有一流支持。这意味着 Capacitor 的 bridge 支持在原生环境或 Web 中运行,许多插件在两个环境中都具有完全相同的 API 和调用约定。

这意味着你将 @capacitor/core 和 Capacitor 插件作为原生应用和渐进式 Web 应用的依赖项使用,Capacitor 会在需要时无缝调用 Web 代码,在可用时调用原生代码。

此外,Capacitor 提供了许多用于查询当前平台的工具,以便在原生或 Web 上运行时提供定制化的体验。

为应用添加渐进式 Web 应用支持​

渐进式 Web 应用应该有一个 App Manifest 和一个 Service Worker。

App Manifest​

首先,你需要一个 App Manifest 文件(manifest.json),它位于你的 index.html 文件旁边,并提供关于你的应用的元数据,例如名称、主题颜色和图标。例如,当你的应用被安装到主屏幕时,将使用这些信息。

Service Worker​

接下来,为了发送推送通知和离线存储数据,Service Worker 将使你的 Web 应用能够代理网络请求并执行处理和同步数据所需的后台任务。

Service Worker 功能强大但复杂。通常,不建议从头开始编写。相反,请查看像 Workbox 这样的工具,它们提供了常见的 Service Worker 方案,你可以轻松地将其整合到你的应用中。

在 MDN 的 使用 Service Worker 页面上阅读更多关于使用 Service Worker 的信息,包括如何注册它们。

渐进式 Web 应用性能​

渐进式 Web 应用通过几个性能标准来评判,包括可交互时间和首次有意义的绘制。

在上线之前,请遵循渐进式 Web 应用清单,并使用 Lighthouse 来审计和测试你的应用。

如果你在现有的前端技术栈中难以满足渐进式 Web 应用的性能标准,请考虑使用 Ionic Framework 作为一个选项,以几乎零配置获得快速的 PWA 支持。