📨

Service Wokerを使って簡単にWEB Push通知を実装する①

2023/10/15に公開

はじめに

2023年3月27日に iOS 16.4 が公開され、iPhoneのSafariでもPush通知が利用できるようになったということで、Push通知のためにネイティブアプリを作らなくても良くなりました。
そこで、WEBのPush通知を手軽に試せないかな?と思って今回Service Workerとweb-push(npm)を使用してさくっとWEB通知を実装してみました。

Service Workerとは

Service Workerについて詳しく知らなかったので今回調べてみました。

Service Workerとは、Webブラウザのバックグラウンドで実行されるスクリプトです。
ユーザーがWebページを開いていないときでも、裏側で処理を実行させることが出来ます。
下記のようなことが機能が提供されているようです。

・オフラインキャッシュ
Service Workerは、キャッシュAPIを利用して、ネットワークリクエストの結果をキャッシュし、オフライン時にキャッシュされたリソースを提供することができます。これにより、ネットワーク接続がない場合や接続が不安定な場合でも、ユーザーが操作できる環境を提供できます。

・バックグラウンド同期
Service Workerは、バックグラウンドでデータの同期を行うことができます。これにより、ネットワーク接続が回復したときに、未送信のデータをサーバーに送信するなどの操作を自動的に行うことができます。

・Push通知:
Service Workerは、サーバーからのPush通知を受信し、ユーザーに通知を表示することができます。これにより、アプリケーションはユーザーに重要な更新や情報をリアルタイムで提供することができます。

詳しくは、Service Workerの基本とそれを使ってできることを参照ください。

今回は、Push通知の機能を利用します。

WEB Push通知の全体像

今回Service Workerとweb-push(npm)を使用して実装するWEB push通知の全体像について説明します。Push通知が表示されるまでの流れは下記の図の通りです。

ユーザーに通知が表示されるまでの流れは、次の通りです。

  1. ユーザー訪問:ユーザーがウェブサイトを訪れます。
  2. Service Worker登録: クライアントはService Workerを登録します。
  3. Push購読のリクエスト: クライアントはPush通知の購読をリクエストします。
  4. Push購読の作成: Service WorkerはPush通知の購読を作成し、購読情報をクライアントに返します。
  5. サーバーへの購読情報送信: クライアントは購読情報をサーバーに送信します。
  6. 購読の確認: サーバーは購読を確認し、購読情報を保存します。
  7. Push通知の送信: サーバーはService WorkerにPush通知を送信します。
  8. 通知の表示: Service Workerはユーザーに通知を表示します。

WebのPush通知の全体像を捉えるという記事が非常に参考になりました。

最後に

今回は、Service Wokerを使って簡単にWEB Push通知を実装するにあたって、「Service Workerとは何か」と「実装するPush通知の全体像」について説明しました。
いよいよ次の記事では、Service Workerとweb-pushを使用して簡単なWEB Push通知機能を実装するためのハンズオンを紹介いたします。

Discussion