Maison > interface Web > js tutoriel > Notifications Web Push avec React et Pushpad

Notifications Web Push avec React et Pushpad

Linda Hamilton
Libérer: 2025-01-23 18:49:11
original
934 Les gens l'ont consulté

Web Push Notifications with React and Pushpad

Ce tutoriel montre comment intégrer de manière transparente les notifications push Web dans votre application React à l'aide du SDK Pushpad. Nous allons créer un composant React simple : un bouton qui permet aux utilisateurs de s'abonner ou de se désinscrire des notifications push.

Configuration du SDK JavaScript Pushpad

Commencez par ajouter un fichier service-worker.js au répertoire racine de votre site Web. Ajoutez le code suivant à ce fichier :

<code class="language-javascript">importScripts('https://pushpad.xyz/service-worker.js');</code>
Copier après la connexion

Ensuite, incluez cet extrait de code dans votre site Web :

<code class="language-javascript">(function(p,u,s,h,x){p.pushpad=p.pushpad||function(){(p.pushpad.q=p.pushpad.q||[]).push(arguments)};h=u.getElementsByTagName('head')[0];x=u.createElement('script');x.async=1;x.src=s;h.appendChild(x);})(window,document,'https://pushpad.xyz/pushpad.js');

pushpad('init', PROJECT_ID);</code>
Copier après la connexion

N'oubliez pas de remplacer PROJECT_ID par votre ID de projet réel à partir du tableau de bord Pushpad.

Remarque : La fonction init de Pushpad tente d'enregistrer service-worker.js. Si vous avez déjà enregistré un service worker, vous pouvez contourner cela en utilisant : pushpad('init', PROJECT_ID, { serviceWorkerPath: null });.

Fonctions du SDK Pushpad

Le SDK Pushpad fournit plusieurs fonctions utiles :

  • pushpad('subscribe') : Abonne l'utilisateur et affiche l'invite d'autorisation du navigateur.
  • pushpad('status') : Récupère l'état actuel de l'abonnement.
  • pushpad('unsubscribe') : Désabonne l'utilisateur.
  • pushpad('uid') : Authentifie les utilisateurs.
  • pushpad('tags') : ajoute des données de ciblage.

Composant React : Un bouton d'abonnement/désabonnement

Voici le code React pour créer un bouton d'abonnement/désabonnement :

<code class="language-javascript">import React, { useState, useEffect } from 'react';

const PushSubscriptionButton = () => {
  const [subscribed, setSubscribed] = useState(null);

  useEffect(() => {
    pushpad('status', (isSubscribed) => {
      setSubscribed(isSubscribed);
    });
  }, []);

  const subscribe = () => {
    pushpad('subscribe', (isSubscribed) => {
      setSubscribed(isSubscribed);
      if (!isSubscribed) {
        alert('Notifications are blocked by browser settings.');
      }
    });
  };

  const unsubscribe = () => {
    pushpad('unsubscribe', () => {
      setSubscribed(false);
    });
  };

  if (subscribed === null) {
    return null;
  }

  return (
    subscribed ? (
      <button onClick={unsubscribe}>Unsubscribe</button>
    ) : (
      <button onClick={subscribe}>Subscribe</button>
    )
  );
};

export default PushSubscriptionButton;</code>
Copier après la connexion

Ce composant vérifie l'état de l'abonnement, affiche le bouton approprié (« S'abonner » ou « Se désinscrire ») et gère les actions d'abonnement/désabonnement. Il fournit également une alerte conviviale si les notifications sont bloquées.

Envoi de notifications

Une fois que vous avez des abonnés, vous pouvez envoyer des notifications à l'aide du tableau de bord Pushpad (envoi manuel) ou par programmation via l'API Pushpad (en utilisant leur Node.js ou d'autres bibliothèques de langage). Cela vous permet d'envoyer des notifications même lorsque les utilisateurs ne sont pas activement sur votre site Web. Les exemples incluent les annonces de nouveaux articles de blog ou les promotions de commerce électronique.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal