跳到主要内容
版本:v8

渐进式 Web 应用

Web 进化,但更出色

渐进式 Web 应用(PWA)是一种利用现代 Web 能力为用户提供类似应用体验的 Web 应用。 这些应用满足特定要求(见下文),部署到服务器上,可通过 URL 访问,并被搜索引擎索引。

这可以与 Capacitor 协同工作,为所有用户提供多种部署目标。 你可以将应用同时部署为 PWA 和原生应用,充分利用这两个渠道。

Ionic 允许你不仅将应用发布到应用商店,还可以作为 PWA 部署到移动 Web。

需要满足的条件

要被视为渐进式 Web 应用,你的应用必须:

  • 渐进式 —— 无论用户使用何种浏览器,都能为每个用户工作,因为其核心原则是渐进增强。

  • 响应式 —— 适应任何形态的设备,桌面、移动、平板或未来的任何设备。

  • 连接无关 —— 通过 Service Worker 增强,支持离线或在低质量网络下工作。

  • 类应用 —— 使用应用外壳模型提供应用风格的导航和交互。

  • 新鲜 —— 通过 Service Worker 更新过程始终保持最新状态。

  • 安全 —— 通过 HTTPS 提供服务,防止窥探并确保内容未被篡改。

  • 可发现 —— 通过 W3C 清单和 Service Worker 注册范围被识别为"应用程序",使搜索引擎能够找到它们。

  • 可重新吸引 —— 通过推送通知等功能轻松实现用户再互动。

  • 可安装 —— 允许用户将最常用的应用"保留"在主屏幕上,无需经过繁琐的应用商店安装过程。

  • 可链接 —— 通过 URL 轻松分享,无需复杂的安装。

Addy Osmani:渐进式 Web 应用

内容很多,但对于 Ionic 应用来说,可以归结为以下几个要点。

离线支持

应用应该能够离线工作。无论是显示合适的"离线"消息,还是缓存应用数据以供显示。

Web 应用清单

应用清单文件应描述应用所需的资源。这包括应用显示名称、图标以及启动画面。如果在 index.html 中链接到清单文件,浏览器会检测到它并为你加载资源。

Service Worker

Service Worker 本可以在离线支持中提及,但它确实值得单独讨论。Service Worker 提供了一种编程方式来缓存应用资源,无论是 JavaScript 文件还是来自 HTTP 请求的 JSON 数据。编程式 API 允许开发者决定如何处理缓存,并提供比其他选项更灵活的体验。