2

我在我的渐进式 Web 应用程序中将新的 Web 推送 API 与服务工作者一起使用,但我担心用户在最初启用推送通知权限后会禁用它。

检测用户禁用通知权限(即添加仪器/分析)以便我可以跟踪的最佳方法是什么?

4

1 回答 1

3

我相信您正在寻找的内容已包含在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 开始支持。

于 2016-01-07T15:12:46.353 回答