如何使 PWA 可安装

在本教程的最后一步中,我们了解了示例应用程序 js13kPWA 如何借助其 服务工作者 在离线状态下工作,但我们还可以更进一步,允许用户在他们的设备上安装 Web 应用程序。安装的 Web 应用程序随后可以像任何操作系统原生应用程序一样由用户启动。本文介绍了如何使用 Web 应用程序的清单来实现这一点。

Web 应用程序清单允许应用程序直接从设备的主屏幕、任务栏或停靠栏启动,而不是用户必须打开浏览器,然后通过使用书签或键入 URL 来导航到网站。您的 Web 应用程序可以与原生应用程序并排放置,这使得用户更容易访问。此外,您可以指定应用程序以全屏或独立模式启动,从而删除默认的浏览器用户界面,否则该界面将存在,从而创造出更加无缝且原生般的感觉。

要了解更多信息,请参阅 使 PWA 可安装

要求

要使我们的示例应用程序可安装,需要以下内容

  • 一个 Web 应用程序清单,其中 填写了正确的成员
  • 网站要从安全的 (HTTPS) 域提供服务。
  • 一个图标来表示设备上的应用程序。

Web 应用程序清单文件

关键要素是一个 Web 应用程序清单文件,它以 JSON 格式列出了有关网站的所有信息。

它通常位于 Web 应用程序的根文件夹中。它包含有用的信息,例如应用程序的标题、指向不同大小图标的路径(这些图标可用于在操作系统上表示应用程序,例如主屏幕上的图标、开始菜单中的条目或桌面上的图标),以及在加载或启动屏幕中使用的背景颜色。在安装过程中以及在设备的应用程序启动界面(例如移动设备的主屏幕)内,浏览器需要这些信息才能正确呈现 Web 应用程序。

js13kpwa.webmanifest 文件 js13kPWA Web 应用程序包含在 <head> 块中 index.html 文件使用以下代码行

html
<link rel="manifest" href="js13kpwa.webmanifest" />

注意: 许多人使用 manifest.json 作为 Web 应用程序清单,因为内容以 JSON 结构组织。但是,.webmanifest 文件格式在 W3C 清单规范 中明确提及,因此我们将在这里使用它。

文件内容如下

json
{
  "name": "js13kGames Progressive Web App",
  "short_name": "js13kPWA",
  "description": "Progressive Web App that lists games submitted to the A-Frame category in the js13kGames 2017 competition.",
  "icons": [
    {
      "src": "icons/icon-32.png",
      "sizes": "32x32",
      "type": "image/png"
    },
    // ...
    {
      "src": "icons/icon-512.png",
      "sizes": "512x512",
      "type": "image/png"
    }
  ],
  "start_url": "/pwa-examples/js13kpwa/index.html",
  "display": "fullscreen",
  "theme_color": "#B12A34",
  "background_color": "#B12A34"
}

大多数成员是不言自明的。以下是先前代码示例中显示的成员的描述

  • name:您的 Web 应用程序的完整名称。
  • short_name:将在主屏幕上显示的简称。
  • description:解释您的应用程序功能的一两句话。
  • icons:有关应用程序图标的信息 - 源 URL、大小和类型。请务必至少包含几个,以便为用户的设备选择最适合的图标。参阅 定义您的应用程序图标
  • start_url:启动应用程序时要启动的索引文档。
  • display:应用程序的显示方式;可以是 fullscreenstandaloneminimal-uibrowser
  • theme_color:用于 UI 的主要颜色,由操作系统使用。
  • background_color:用作应用程序默认背景的颜色,在安装期间和启动屏幕上使用。

除了上面列出的成员之外,您还可以使用更多成员 - 请务必查看 Web 应用程序清单参考 以获取详细信息。

安装 PWA

使用我们 Web 应用程序清单中找到的信息,支持的浏览器可以向用户显示安装提示。当用户访问 PWA 时,可能会提示他们将应用程序安装到设备上。当他们接受提示时,PWA 就像其他操作系统原生应用程序一样安装,用户可以像往常一样启动和使用 Web 应用程序。

要详细了解用户如何安装 PWA,请参阅 安装和卸载 Web 应用程序

启动屏幕

在某些设备上,还会根据清单中的信息生成启动屏幕,该屏幕将在启动 PWA 时以及 PWA 正在加载时显示。

Screenshot of the app's splash screen on a mobile phone. It is an all-red page with the application logo in the middle and its name below it: "js13kGames Progressive Web App"

图标以及主题和背景颜色用于创建此屏幕。

总结

在本文中,我们了解了如何使用正确配置的 Web 应用程序清单使 PWA 可安装,以及用户随后如何在他们的设备上安装 PWA。

现在让我们进入 PWA 教程的最后一步:使用推送通知与用户共享公告,并帮助用户重新参与我们的应用程序。