PWA 实现后台消息推送的正确姿势

阅读时长 7 分钟读完

前言

Progressive Web App(PWA)已经成为了前端开发中的热门话题,其中最受欢迎的特性就是它可以实现离线使用。但是,在现实世界中,我们经常需要使用在线的应用程序,而后台消息推送功能可以帮助我们快速获取重要信息。

在本文中,我们将探讨如何使用 PWA 实现后台消息推送。我们将了解如何注册 Service Worker 并向服务器请求推送许可,如何在后台接收和处理推送消息以及如何在应用程序中显示它们。

什么是后台消息推送

现代 Web 应用需要实时通知用户更新或事件,这就是后台消息推送的作用。后台消息推送从 Web 开发的角度来看,是服务器向客户端发送通知消息的方法。这可以让用户和开发人员更加方便快捷地获取信息。

准备工作

在开始实现后台消息推送之前,我们需要进行一些准备工作。

创建一个服务器

我们需要一个能够向客户端发送通知的服务器。这通常需要一个可靠的服务器环境和实时消息推送的能力。在此,我们将使用 Firebase 的示例代码来实现。

一个基本的 PWA

我们需要一个基本的 PWA,以便我们可以通过它来接收和处理推送消息。 我们可以使用以下命令来创建一个现代的 React 应用程序:

然后,您可以将以下代码添加到 src/index.js 中:

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

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

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

这将确保我们的应用程序正确注册 Service Worker。

安装 Firebase

我们需要使用 Firebase 将消息从服务器推送到客户端。 我们可以使用以下命令将 Firebase 添加到应用程序中:

配置 Firebase

使用 Firebase 实现后台消息推送,我们需要创建一个 Firebase 项目并具有正确的配置。 其中包括启用 Firebase Cloud Messaging(FCM),创建一个 Web 应用程序并获取必要的凭据。 在此简单介绍如何完成此操作:

  1. 转到 Firebase 控制台(console.firebase.google.com),创建新的 Firebase 项目。

  2. 在“设置”选项卡中,单击“常规”选项卡,以查看 Firebase 项目的配置。

  3. 在“常规”选项卡中,单击“添加应用程序”,然后选择“Web”。

  4. 为您的应用程序提供一个易于识别的名称,然后单击“注册应用程序”。

  5. 在“添加 Firebase SDK”页面上,将 Firebase 配置添加到应用程序,并获取公钥。将配置和公钥添加到您的应用程序源代码中。

注册 Service Worker 推送

我们需要去注册 Service Worker 推送,以便我们可以接收来自服务器的消息推送。

首先,我们需要导入 Firebase 和刚刚获取的密钥,然后初始化 Firebase 应用:

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

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

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

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

然后,我们可以检查用户是否已允许我们向他们发送推送通知。我们使用以下函数来检查用户是否已授权:

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

如果它们没有授权,我们可以调用以下函数来向用户请求授权:

一旦用户授权,我们就可以获得一个设备令牌。该设备令牌将用于将推送消息发送到特定设备。我们使用以下函数来获取该令牌:

然后,我们需要在我们的 Service Worker 程序中监听消息推送事件。 我们使用以下代码来添加此功能:

这个函数将在您运行的应用程序中显示一个新的通知。

现在,我们已经准备好在我们的前端应用程序中接收和处理消息了!

接收和处理推送消息

在后台消息推送到达我们的前端应用程序时,我们需要开发代码来接收和处理它们。我们可以使用以下代码来监听消息推送事件:

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

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

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

这将启用我们的应用程序来接收来自服务器的消息推送,并在控制台中记录它们。

我们可以使用以下代码在前端应用程序中显示推送消息的通知:

请注意,我们已经在前面的步骤中将此代码添加到我们的 Service Worker。

小结

在本文中,我们展示了如何使用 PWA 实现后台消息推送。我们了解了如何注册 Service Worker 并向服务器请求推送许可,以及如何在后台接收和处理推送消息。此外,我们还展示了如何在应用程序中显示推送消息。在实际的应用程序中,后台消息推送可以帮助我们快速获取重要信息,帮助用户快速地接收到公告、通知、政策等内容,从而提升用户的体验感和使用情绪。

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

纠错
反馈

纠错反馈