使用 Angular CLI 创建渐进式 Web 应用

您想让 Angular 应用可安装吗?别再等了!

在这篇博文中,您将了解如何使用 Angular 命令行界面 (CLI) 来创建 渐进式 Web 应用 (PWA)

您可以在 GitHub 上找到本指南中的代码示例。

创建可安装的 PWA

如需将 Angular 应用转换为 PWA,您只需运行一个命令:

ng add @angular/pwa

此命令将执行以下操作:

  • 使用默认缓存配置创建 Service Worker
  • 创建清单文件,该文件会告知浏览器在用户设备上安装应用后,应用应如何运行。
  • index.html 中添加指向清单文件的链接。
  • theme-color <meta> 标记添加到 index.html
  • src/assets 目录中创建应用图标。

默认情况下,Service Worker 应在首次网页加载后的几秒钟内注册。如果未注册,请考虑修改 registrationStrategy

自定义 PWA

使用 Angular Service Worker 进行预缓存博文介绍了如何配置 Angular Service Worker。您可以在其中了解如何指定希望 Service Worker 缓存哪些资源,以及应使用哪种策略来缓存这些资源。

您可以在应用的清单文件中指定应用的名称、简称、图标、主题颜色和其他详细信息。如需了解可设置的完整属性集,请参阅添加 Web 应用清单博文。

请查看 Angular CLI 生成的清单文件:

{
  "name": "manifest-web-dev",
  "short_name": "manifest-web-dev",
  "theme_color": "#1976d2",
  "background_color": "#fafafa",
  "display": "standalone",
  "scope": "/",
  "start_url": "/",
  "icons": [
    {
      "src": "assets/icons/icon-72x72.png",
      "sizes": "72x72",
      "type": "image/png"
    },
    
    {
      "src": "assets/icons/icon-512x512.png",
      "sizes": "512x512",
      "type": "image/png"
    }
  ]
}

您可以通过更改 manifest.webmanifest 中的相关值来自定义这些属性中的任何一个。

PWA 使用 index.html 中的 link 元素引用其清单文件。浏览器找到引用后,会显示添加到主屏幕 提示:

渐进式 Web 应用安装提示

由于 ng-add 原理图会添加使应用 可安装所需的一切内容,因此它们会生成一些快捷方式图标,这些图标会在用户将应用添加到桌面后显示:

渐进式 Web 应用快捷方式图标

请务必在将 PWA 部署到生产环境之前自定义清单属性和图标!

总结

如需创建可安装的 Angular 应用,请执行以下操作:

  1. 使用 Angular CLI 将 @angular/pwa 添加到项目中。
  2. 修改 manifest.webmanifest 文件中的选项以适合您的项目。
  3. 更新 src/assets/icons 目录中的图标以适合您的项目。
  4. (可选)修改 index.html 中的 theme-color