跳到主要内容
版本:v3

构建渐进式 Web 应用

Capacitor 对渐进式 Web 应用(PWA)提供了一流支持,使构建一个能在 iOS 和 Android 上原生运行,同时也能在 Web 上作为移动 Web 应用或"渐进式 Web 应用"运行的应用变得容易。

什么是渐进式 Web 应用?​

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

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

Capacitor 与渐进式 Web 应用​

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

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

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

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

渐进式 Web 应用需要有一个应用清单(App Manifest)和一个服务工作线程(Service Worker)。

应用清单​

首先,您需要一个应用清单文件(manifest.json),它与您的 index.html 文件放在一起,并提供关于您的应用的元数据,例如名称、主题颜色和图标。这些信息将在您的应用被安装到主屏幕时使用。

服务工作线程​

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

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

在 MDN 的使用服务工作线程页面上阅读更多关于使用服务工作线程的信息,包括如何注册它们。

渐进式 Web 应用性能​

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

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

如果您在使用现有前端技术栈时难以达到渐进式 Web 应用的性能标准,请查看 Ionic Framework,它是一个几乎零配置就能快速获得 PWA 支持的选择。