プログレッシブ Web アプリで Service Worker と一緒に新しい Web プッシュ API を使用していますが、ユーザーが最初にプッシュ通知許可を有効にした後に無効にすることが心配です。
これを追跡できるように、ユーザーが通知許可を無効にしている (つまり、インストルメンテーション/分析を追加する) ことを検出する最良の方法は何ですか?
プログレッシブ Web アプリで Service Worker と一緒に新しい Web プッシュ API を使用していますが、ユーザーが最初にプッシュ通知許可を有効にした後に無効にすることが心配です。
これを追跡できるように、ユーザーが通知許可を無効にしている (つまり、インストルメンテーション/分析を追加する) ことを検出する最良の方法は何ですか?
あなたが探しているものは、イベントを含むPermissions APIでカバーされていると思います。change
このイベントは、最初のユーザーの決定と、ユーザーが後で気が変わった場合の両方で発生します。
最も基本的には、次のことができます。
if ('permissions' in navigator) {
navigator.permissions.query({name:'notifications'}).then(function(notificationPerm) {
// notificationPerm.state is one of 'granted', 'denied', or 'prompt'.
// At this point you can compare notificationPerm.state to a previously
// cached value, and also listen for changes while the page is open via
// the onchange handler.
notificationPerm.onchange = function() {
// Permissions have changed while the page is open.
// Do something based on the current notificationPerm.state value.
};
});
}
これがどのように使用できるかを示す優れたリソースがいくつかあります。
Permissions API は、Chrome ではバージョン 43 でサポートされ、Firefox では次のバージョン 45 リリースでサポートされます。