PWA 应用如何让用户添加到桌面

阅读时长 5 分钟读完

以往的 Web 应用只能通过浏览器打开,用户必须先输入 URL 才能访问。但是现在,随着 PWA 技术的普及,Web 应用可以像原生应用一样添加到设备桌面,并且可以离线使用,有了更好的用户体验。

在本文中,我们将介绍如何让用户将 PWA 应用添加到桌面。具体来说,本文的内容包括以下几个方面:

  • 什么是 PWA 应用
  • 如何让用户添加 PWA 应用到桌面
  • 示例代码

什么是 PWA 应用

PWA,即 Progressive Web App,是一种 Web 应用的形态,可以像原生应用一样添加到设备桌面,并且可以离线使用。PWA 通过使用现代 Web 浏览器提供的 API 和功能,提供其它 Web 应用无法匹配的用户体验。

常见的 PWA 应用有 Twitter Lite,Flipboard 等。PWA 应用的特点包括:

  • 可以添加到设备的主屏幕
  • 可以离线访问
  • 快速加载
  • 可以推送通知
  • 可以在桌面上打开
  • 使用 HTTPS 协议
  • 响应式设计

如何让用户添加 PWA 应用到桌面

要让用户将 PWA 应用添加到桌面,我们需要使用 Web App Manifest 文件和 Service Worker。下面我们一步一步来介绍。

创建 Manifest 文件

Web App Manifest 是一个 JSON 文件,可以描述应用的名称、图标以及其它用于设备桌面显示的信息。我们来看看一个简单的示例:

-- -------------------- ---- -------
-
  ------- --- -----
  ------------- ------
  ------------ ----
  -------- -
      -
          ------ ------------------------
          ------- ------------
          -------- -------
      --
      -
          ------ ------------------------
          ------- ------------
          -------- -------
      -
  --
  ---------- ------------
-
展开代码

这个示例中,我们定义了应用的名称、短名称、启动 URL,以及两个图标。最后一个属性 display,定义了应用的显示方式。这里我们使用 standalone,表示应用可以在设备桌面上打开,而不是在浏览器中。

注册 Service Worker

Service Worker 是一个 JavaScript 文件,可以缓存网页资源,使之在离线时也可以使用。在上面的 Manifest 文件中,我们定义了一个 start_url,这个 URL 将被用于启动应用。我们可以在这个 URL 对应的页面中注册 Service Worker。

-- -------------------- ---- -------
-- ---------------- -- ---------- -
  ------------------------------- -- -- -
    -----------------------------------------
      ------------------ -- -
        -------------------- ------ ----------- -- --------------
      --
      ------------ -- -
        -------------------- ------ ------------ ------- -- -------
      ---
  ---
-
展开代码

添加提示用户添加到桌面的代码

当用户打开 PWA 应用时,我们需要判断是否可以将应用添加到设备桌面上。如果可以,就在界面上显示添加提示。

-- -------------------- ---- -------
--- ---------------

---------------------------------------------- --- -- -
  -- ------- ------ -- --- ------- ---- ------------- ------- --- ------
  -------------------
  -- ----- --- ----- -- -- --- -- --------- ------
  -------------- - --
  -- ------ -- ------ --- ---- ---- --- --- -- ---- ------
  -------------------- - --------
---

-------------------------------- -- -- -
  -- ---- --- ------
  ------------------------
  -- ---- --- --- ---- -- ------- -- --- ------
  -------------------------
    -------------------- -- -
      -- --------------------- --- ----------- -
        ----------------- -------- --- ---- ---------
      - ---- -
        ----------------- --------- --- ---- ---------
      -
      -------------- - -----
    ---
---
展开代码

在这段代码中,当浏览器检测到可以将应用添加到桌面时,会触发 beforeinstallprompt 事件。我们在这个事件中缓存携带的提示信息(deferredPrompt),并且在页面中添加一个“添加到桌面”的按钮。当用户点击这个按钮时,我们可以使用 deferredPrompt 来弹出提示框,询问用户是否添加到桌面。

示例代码

完整的 PWA 应用可以参考这个示例:https://github.com/mdn/pwa-examples/tree/master/a2hs

本文所使用的示例代码部分来源于 MDN Web Docs。如果您想进一步学习 PWA,可以参考它们的 PWA 相关文章 https://developer.mozilla.org/zh-CN/docs/Web/Progressive_web_apps

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67c8c296e46428fe9ef82785

纠错
反馈

纠错反馈

程序员教程

精选优质教程,助你快速提升技术实力

程序员面试题库

海量优质面试题,助你轻松应对技术面试