スキルアップを始める

Progressive Web App (PWA) と Firebase Cloud Messaging (FCM) を組み合わせてPWAからプッシュ通知を送信する仕組みとサンプルコード

PWA(プログレッシブウェブアプリ)
メルマガ購読できます

簡単1ステップ!届いたメールの「フォローを確認」クリックでメルマガ登録!一緒にスキルアップを目指しましょう!

57人の購読者に加わりましょう

Progressive Web App (PWA) と Firebase Cloud Messaging (FCM) を組み合わせて、PWAからプッシュ通知を送信する仕組みと、サンプルコードを説明します。

Firebase プロジェクトのセットアップ

最初に、Firebase プロジェクトを作成または既存のプロジェクトに移動します。Firebase コンソールで新しいプロジェクトを作成し、Firebase プロジェクトの設定を行います。

Firebase SDK の設定

Firebase SDK をウェブアプリに統合するために、Firebase SDK を追加します。以下のスクリプトをHTMLファイルに追加します。

<!-- Firebase JavaScript SDK の読み込み -->
<script src="https://www.gstatic.com/firebasejs/9.0.0/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/9.0.0/firebase-messaging.js"></script>

<script>
  // Firebase の設定
  var firebaseConfig = {
    apiKey: "YOUR_API_KEY",
    authDomain: "YOUR_AUTH_DOMAIN",
    projectId: "YOUR_PROJECT_ID",
    storageBucket: "YOUR_STORAGE_BUCKET",
    messagingSenderId: "YOUR_MESSAGING_SENDER_ID",
    appId: "YOUR_APP_ID"
  };
  
  // Firebase の初期化
  firebase.initializeApp(firebaseConfig);

  // メッセージングオブジェクトの取得
  const messaging = firebase.messaging();
</script>

Service Worker の登録

PWA のサービスワーカーを登録し、Firebase プッシュ通知を受信できるようにします。

if ('serviceWorker' in navigator) {
  navigator.serviceWorker.register('/service-worker.js')
    .then(function(registration) {
      console.log('Service Worker registered with scope:', registration.scope);
    })
    .catch(function(error) {
      console.error('Service Worker registration failed:', error);
    });
}

プッシュ通知の許可

プッシュ通知を受信するために、ユーザーから許可を得る必要があります。通常、ボタンやダイアログを表示してユーザーに許可を求めます。

許可が得られたら、以下のコードで通知の設定を行います。

messaging.requestPermission()
  .then(function() {
    console.log('Permission granted');
    // トークンの取得
    return messaging.getToken();
  })
  .then(function(token) {
    console.log('Token:', token);
    // サーバーにトークンを送信するなどの処理を行う
  })
  .catch(function(error) {
    console.error('Permission denied:', error);
  });

プッシュ通知の受信

プッシュ通知を受信するために、以下のコードを使用します。

サービスワーカー内でプッシュ通知を処理し、メッセージを表示します。

self.addEventListener('push', function(event) {
  const options = {
    body: event.data.text(),
    icon: 'icon.png', // 通知アイコンのパス
  };

  event.waitUntil(
    self.registration.showNotification('プッシュ通知', options)
  );
});

まとめ

これで、PWAがFirebase Cloud Messagingを使用してプッシュ通知を送信し、サービスワーカーがそれを受信して表示する基本的な仕組みが整いました。適切なトークン管理とセキュリティ対策を施し、通知を送信するサーバーサイドのコードを追加することも忘れないでください。

以上がPWAとFirebase FCMを使用してプッシュ通知を実装する基本的な手順とサンプルコードです。

詳細な設定やカスタマイズにはFirebaseのドキュメンテーションを参照してください。

会員登録するとご利用できます。
Kindle Unlimited 会員は無料で購読できます
購読はこちら
Kindle Unlimited 会員は無料で購読できます
購読はこちら