Web Push
通知を試すにはログインしてください。
iPhoneで通知を受け取るには
- Safariの共有メニューから「ホーム画面に追加」を選びます。
- ホーム画面のアイコンからサイトを開きます。
- ログインして「このブラウザで通知を受け取る」を選び、通知を許可します。
iOS 16.4以降が必要です。
Web Pushはどう届く?
Web Pushは、サイトのサーバーからブラウザへメッセージを届ける仕組みです。ページを開き続ける必要はありません。通知の登録はブラウザやホーム画面のWebアプリごとに行われ、同じ人の別のスマートフォンやPCへ自動的に引き継がれるものではありません。
サイトのサーバー
通知の本文を作り、購読ごとの鍵情報で暗号化
配信サービス
Apple・Google・Mozillaなどが暗号化されたメッセージを中継
受信するブラウザ
本文を復号し、Service Workerにpushイベントを渡す
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の解説