Web Push
Webアプリからユーザーへ、タブを閉じていてもプッシュ通知を送れるブラウザAPI。Service Worker、ユーザーの許可、プッシュサービス(ChromeではFirebase Cloud Messaging、SafariではApple Push Notification Service)が必要。
VAPID(Voluntary Application Server Identification)はプッシュメッセージに署名し、APIキーなしでプッシュサービスが送信者を識別できるようにする。購読の流れは、ユーザーが許可し、ブラウザがエンドポイントURLを生成し、サーバーが暗号化したペイロードをそのエンドポイントへ送る、というものだ。Safariは Web Push に対応している(macOS 13以降、iOS 16.4以降)。それ以前は、Apple専用のアプリ向けプッシュしかなかった。iOS 16.4より前、PWAの普及を妨げていたのがPWAとWeb Pushの組み合わせの欠如だった。アンチパターンは、初回訪問時にいきなり通知許可を求めること。Chrome 80以降は、ユーザー操作なしの許可ダイアログをブロックする。