Web Push

Web Push

通知を試すにはログインしてください

iPhoneで通知を受け取るには
  1. Safariの共有メニューから「ホーム画面に追加」を選びます。
  2. ホーム画面のアイコンからサイトを開きます。
  3. ログインして「このブラウザで通知を受け取る」を選び、通知を許可します。

iOS 16.4以降が必要です。

Web Pushはどう届く?

Web Pushは、サイトのサーバーからブラウザへメッセージを届ける仕組みです。ページを開き続ける必要はありません。通知の登録はブラウザやホーム画面のWebアプリごとに行われ、同じ人の別のスマートフォンやPCへ自動的に引き継がれるものではありません。

通知が届くまで
  1. サイトのサーバー

    通知の本文を作り、購読ごとの鍵情報で暗号化

  2. 配信サービス

    Apple・Google・Mozillaなどが暗号化されたメッセージを中継

  3. 受信するブラウザ

    本文を復号し、Service Workerにpushイベントを渡す

  4. OSの通知

    Service Workerが表示を要求。表示や音はOSの設定に従う

オンにすると何が起きる?

初回はブラウザが通知の許可を求めます。許可すると、ブラウザは配信サービスに購読を作成し、送信先URLと暗号化に使う情報をサイトに渡します。このサイトでは運用者が手動で送るテスト通知を受け取れます。

受信時には、ページとは別に動くService Workerが通知を表示します。ただし、配信サービスが受け付けても表示されるとは限りません。通信状況やメッセージの有効期限、OSの通知設定・集中モードなどが影響します。配信の仕様:RFC 8030

このサイトが保存する情報

送信先URL(endpoint)
配信サービスが発行する、その購読専用の宛先です。メールアドレスや電話番号ではありません。
公開鍵(p256dh)と認証用の秘密値(auth)
メッセージの暗号化に使います。復号に使うブラウザ側の秘密鍵はサイトには送られません。authは公開鍵ではなく、送信先URLとともに公開しない情報です。
通知先ID・登録日時・管理用Cookieのハッシュ
購読の識別と管理に使います。管理用Cookie自体はブラウザに保持し、サーバーではそのハッシュと照合します。この購読テーブルには通知の本文や受信履歴を保存しません。

本文は送信するサイトから受信するブラウザまで暗号化され、仲介する配信サービスには平文を渡しません。一方、送信元のサイトは本文を知っており、配信サービスにも配送先や通信のタイミングなどは分かります。暗号化の仕様:RFC 8291

オフにすると何が消える?

このサイトのサーバーから購読情報を削除し、続いてブラウザの購読を解除します。解除に失敗した場合は再試行できます。すでに配信サービスへ渡った通知や、表示済みの通知は、この操作では取り消せません。

購読の解除と、ブラウザ・OSの「通知を許可する」設定は別です。ここでオフにしても通知の許可は取り消されません。許可自体を変更する場合はブラウザやOSの設定を使います。管理用Cookieを削除すると、以前のサーバー上の登録をこのブラウザから管理できなくなる場合があります。

iPhoneの対応条件:WebKitによるWeb Pushの解説