push-notification - 如何衡量从我的渐进式网络应用程序禁用推送通知的人数?

标签 push-notification service-worker web-push progressive-web-apps

我在渐进式 Web 应用程序中将新的 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.
    };
  });
}

有一些很好的资源展示了如何使用它:

Chrome 从版本 43 开始支持 Permissions API,Firefox 从即将发布的版本 45 开始支持。

关于push-notification - 如何衡量从我的渐进式网络应用程序禁用推送通知的人数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34657517/

相关文章:

android - Firebase:检查 JSON 中的更改并自动发送通知

Firebase 推送通知在 Firefox 63 中不起作用

macos - 常见的 "Unable to generate ICNS file for push notification package"错误

iphone - 从 Mac 向 iPhone/iPad/iPod touch 发送通知

ios - 不显示横幅仅在收到推送通知时振动设备

javascript - 当我尝试缓存 xxx.worker.js 时,Service Worker 不会安装

javascript - Service Worker 被删除并且即使在注册时指定根范围后也不会收到推送事件

javascript - PushManager 订阅 promise 从不履行或拒绝

web-push - Pushpad 或 Web 推送通知如何自定义对话框消息

javascript - Web Push 重新订阅 push manager chrome