【问题标题】:denying browser notification permissions拒绝浏览器通知权限
【发布时间】:2017-04-18 21:31:55
【问题描述】:

According to the spec,您可以提示浏览器允许用户授予或拒绝浏览器通知。一旦用户授予权限,是否也有办法以编程方式拒绝该权限?

在他们授予权限后调用window.Notification.requestPermission() 除了运行成功承诺之外没有任何作用。

我的目标是在我的网站的用户设置部分有一个开/关按钮切换。据我所知,一旦打开就无法关闭。

【问题讨论】:

    标签: browser notifications


    【解决方案1】:

    很遗憾,目前我认为这是不可能的。

    未来我们应该能够使用Permissions API 来检查和撤销通知(以及其他API,如地理定位等)。

    但是,虽然我们目前可以查询权限的状态,但不支持 revoke 方法。我相信直到最近在 Firefox 中才有可能,但在 51 中,该功能已更改为默认关闭。 根据MDN

    从 Firefox 开始,revoke() 函数已默认禁用 51,因为它的设计在网络上受到质疑 应用程序安全工作组。可以通过设置重新启用 偏好 dom.permissions.revoke.enable 为 true。

    权限 API 示例:

    navigator.permissions.query({name:'notifications'}).then(function(result) {
    
      console.log(result);
    
    });
    

    结果是提示/拒绝/授予。将“查询”更改为“撤销”以拒绝权限。

    navigator.permissions.revoke({name:'notifications'});
    

    另外,几年前的this answer 提出了一种您可能会感兴趣的替代方法 - 使用 localStorage 来近似此功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-05
      • 1970-01-01
      • 2017-03-02
      • 2016-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多