Rumah >hujung hadapan web >tutorial js >Pemberitahuan Tolak Web dengan React dan Pad Tekan

Pemberitahuan Tolak Web dengan React dan Pad Tekan

Linda Hamilton
Linda Hamiltonasal
2025-01-23 18:49:11883semak imbas

Web Push Notifications with React and Pushpad

Tutorial ini menunjukkan cara menyepadukan pemberitahuan tolak web dengan lancar ke dalam aplikasi React anda menggunakan SDK Pad Tekan. Kami akan mencipta komponen React yang mudah: butang yang membolehkan pengguna melanggan atau menyahlanggan pemberitahuan tolak.

Menyediakan SDK JavaScript Pad Tekan

Mulakan dengan menambahkan service-worker.js fail pada direktori akar tapak web anda. Tambahkan kod berikut pada fail ini:

<code class="language-javascript">importScripts('https://pushpad.xyz/service-worker.js');</code>

Seterusnya, masukkan coretan kod ini dalam tapak web anda:

<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>

Ingat untuk menggantikan PROJECT_ID dengan ID projek sebenar anda daripada papan pemuka Pushpad.

Nota: Fungsi init Pushpad cuba mendaftar service-worker.js. Jika anda telah mendaftarkan pekerja perkhidmatan, anda boleh memintas ini dengan menggunakan: pushpad('init', PROJECT_ID, { serviceWorkerPath: null });.

Fungsi SDK Pad Tekan

SDK Pad Tekan menyediakan beberapa fungsi berguna:

  • pushpad('subscribe'): Melanggan pengguna dan memaparkan gesaan kebenaran penyemak imbas.
  • pushpad('status'): Dapatkan semula status langganan semasa.
  • pushpad('unsubscribe'): Nyahlanggan pengguna.
  • pushpad('uid'): Mengesahkan pengguna.
  • pushpad('tags'): Menambah data penyasaran.

Komponen Reaksi: Butang Langgan/Nyahlanggan

Berikut ialah kod React untuk membuat butang langgan/nyahlanggan:

<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>

Komponen ini menyemak status langganan, memaparkan butang yang sesuai ("Langgan" atau "Nyahlanggan") dan mengendalikan tindakan langganan/nyahlanggan. Ia juga menyediakan makluman mesra pengguna jika pemberitahuan disekat.

Menghantar Pemberitahuan

Setelah anda mempunyai pelanggan, anda boleh menghantar pemberitahuan menggunakan papan pemuka Pushpad (penghantaran manual) atau secara pengaturcaraan melalui API Pushpad (menggunakan Node.js atau pustaka bahasa lain mereka). Ini membolehkan anda menghantar pemberitahuan walaupun pengguna tidak aktif di tapak web anda. Contohnya termasuk pengumuman catatan blog baharu atau promosi e-dagang.

Atas ialah kandungan terperinci Pemberitahuan Tolak Web dengan React dan Pad Tekan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn