我如何用serviceworker或简单的js代码捕捉,当用户谁以前允许为我的网站的网页推送通知禁用它们?对于Firefox和Chrome浏览器.
bqf10yzr1#
您可以使用Permissions API来检测给定权限的当前状态,以及侦听更改。This article有更多的细节。
navigator.permissions.query({name: 'push'}).then(function(status) { // Initial permission status is `status.state` status.onchange = function() { // Status changed to `this.state` }; });
0yycz8jy2#
您可以尝试以下操作:
navigator.permissions.query({name:'notifications'}).then(function(status) { //alert(status.state); // status.state == { "prompt", "granted", "denied" } status.onchange = function() { if(this.state=="denied" || this.state=="prompt"){ push_unsubscribe(); } }; });
或以下内容:
navigator.permissions.query({name:'push', userVisibleOnly:true}).then(function(status) { //alert(status.state); // status.state == { "prompt", "granted", "denied" } status.onchange = function() { if(this.state=="denied" || this.state=="prompt"){ push_unsubscribe(); } }; });
我用它向服务器发送用户已取消或禁用通知的信息。请注意,如果用户在网站设置中这样做,则不会执行该代码。
2条答案
按热度按时间bqf10yzr1#
您可以使用Permissions API来检测给定权限的当前状态,以及侦听更改。
This article有更多的细节。
0yycz8jy2#
您可以尝试以下操作:
或以下内容:
我用它向服务器发送用户已取消或禁用通知的信息。请注意,如果用户在网站设置中这样做,则不会执行该代码。