PWA 应用中如何利用 Push 服务提供触发事件

阅读时长 5 分钟读完

什么是 PWA

PWA 即是 Progressive Web App(渐进式 Web 应用),是一种全新的网页应用模式。通过使用最新的 Web 技术,PWA 实现了近乎原生应用的体验,如快速响应、离线缓存、推送通知等。

PWA 中的 Push 服务

Push API 是 PWA 中提供的一种推送通知服务,可以通过浏览器本地系统发出提示、声音、振动等来让用户知道自己有未读信息。Push API 有两个主要的角色:

  • Push 服务,负责向 Push API 发送数据(即 Push 消息)
  • Service Worker,负责推送消息到浏览器通知区域,或者在必要时唤醒前端应用。

PWA 中如何使用 Push 服务

以下是 PWA 中利用 Push 服务提供触发事件的步骤:

  1. 注册 Service Worker

通过以下代码 snippet 注册 Service Worker:

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

其中,scope 参数是 Service Worker 掌管的路径。一般情况下,我们使用 '/',标识整个站点。

  1. 订阅 Push 服务

在 Service Worker 注册成功后,我们需要让用户订阅 Push 服务以便接收消息。以下是订阅 Push 服务代码:

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

userVisibleOnly 参数设置了是否在消息出现时弹出通知,并且 applicationServerKey 参数则是用于接收通知的公钥。

其中 urlBase64ToUint8Array 方法将使用者全局唯一的 publicVapidKey 值进行解码解析,返回 Uint8Array 类型的 Base64 URL 编码值。

  1. 发送 Push 消息

在用户订阅 Push 服务后,就可以发送 Push 消息了。以下是发送 Push 消息的代码:

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

在上面的代码中,我们通过点击 .send 按钮来触发发送事件。向服务器端发送请求,消息响应为 Trigger push event!

发送 Push 消息,意味着向 Push 服务发送请求,请求的内容是消息及订阅地址。以下是向 Push 服务发送请求代码:

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

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

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

在代码中,webpush 模块有助于与 Push 服务 通信,发送消息的操作可以使用相同的样式模板。注意,这里需要将消息内容 JSON.stringify

总结

PWA 应用中的 Push 服务可以让你的应用实现通知功能,为用户提供更好的体验。使用 Push 服务进行推送,可以让你对用户的喜好和需求有更深入、更精细的了解,推送更多的有价值的内容。

在使用 Push 服务时,还需要注意 Push 事件的有效期、每个应用程序的 Push 配额、可用的硬件资源等因素,因此这需要开发人员谨慎地考虑 Push 服务的实现。

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

纠错
反馈