首页 > 解决方案 > 如何知道用户是否在 Angular 中阻止了自己的 PWA 通知

问题描述

我已经使用 NGSW 和 SwPush 库将 PWA 添加到我现有的应用程序中(我使用的是 angular 8)。我有一个取消订阅按钮来取消订阅接收通知。如果用户使用此按钮取消订阅,那么我将调用 HTTP Post 调用,从数据库中删除他的订阅。

还有一种方法可以使用浏览器将自己从通知中删除。我想知道如何判断用户是否以这种方式取消订阅,以便我可以从数据库中删除他的订阅对象。

从浏览器中删除通知

标签: angularpush-notificationnotificationsprogressive-web-apps

解决方案


您可以使用Notification.permission在浏览器中检查权限。请参阅文档:https ://developer.mozilla.org/en-US/docs/Web/API/Notification/permission 。

此外,您可以像这样订阅浏览器权限更改:

if ('permissions' in navigator) {    
  navigator.permissions.query({name:'notifications'})
    .then((permission) => {
      permission.onchange = () => {
        //...        
      };
    });
}

文档:https ://developer.mozilla.org/en-US/docs/Web/API/PermissionStatus/onchange


推荐阅读