PWA 开发中遇到的推送通知问题及解决方案

什么是 PWA

PWA(Progressive Web App)是一种可以提供类似于原生应用的用户体验的 web 应用程序。PWA 具有如下特点:

  • 可以像原生应用一样在手机桌面上安装;
  • 支持离线使用;
  • 可以推送通知等。

PWA 中的推送通知

PWA 的推送通知可以让用户在离线状态下也能够接收到推送消息。但是,PWA 中的推送通知也有一些问题需要注意:

  1. 推送需要许可:PWA 中的推送通知不是随便能够发送的,需要先得到用户的许可。一般情况下,许可是在用户打开 PWA 页面时询问用户的。

  2. 推送消息的显示:推送消息需要在系统通知栏中显示,这需要使用 Service Worker

  3. 设备适配性:不同的设备系统对 Service Worker 的支持程度不同,需要注意设备适配性问题。

解决方案

得到推送许可

得到推送许可的方式有两种:

  1. 打开 PWA 时询问:在 PWA 打开时,通过 Notification.requestPermission() 方法询问用户是否允许进行推送。

    -- ------------------------ --- -------- -- ----------------------- --- ---------- -
       ---------------------------------------------- ------------ -
          -- ------------
          -- ----------- --- ---------- -
             -- ------
          - ---- -
             -- ------
          -
       ---
    -
  2. 使用 web-push 库:web-push 库能够用于向浏览器申请推送许可,并且该库可以跨足多个浏览器,帮助我们实现设备适配。

显示推送消息

如果推送消息接收到了,需要在系统通知栏上显示推送消息。为了能够显示推送消息,我们需要使用 Service Worker

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

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

设备适配性

不同的设备系统对 Service Worker 的支持程度不同,需要我们在 PWA 开发中注意这个问题。

可以借助 sw-precache 库来完成这个问题。该库可以帮助我们生成适配不同浏览器的 Service Worker,从而满足设备适配性的需求。

结论

PWA 中的推送通知功能能够让我们的应用程序一般来说更加的完整,同时也可以提高用户体验。但是,在 PWA 开发的过程中,我们需要注意一些推送许可、推送消息显示和设备适配性的问题。

对于 PWA 的开发者来说,他们应该具备深入了解 PWA 的能力,并且能够根据具体的情况来解决问题。通过上述解决方案,我们可以帮助 PWA 开发者得到更多的成就。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/67304b3eeedcc8a97c918ba1