angular - 如何知道用户是否在 Angular 中阻止了自己的 PWA 通知
问题描述
我已经使用 NGSW 和 SwPush 库将 PWA 添加到我现有的应用程序中(我使用的是 angular 8)。我有一个取消订阅按钮来取消订阅接收通知。如果用户使用此按钮取消订阅,那么我将调用 HTTP Post 调用,从数据库中删除他的订阅。
还有一种方法可以使用浏览器将自己从通知中删除。我想知道如何判断用户是否以这种方式取消订阅,以便我可以从数据库中删除他的订阅对象。
解决方案
您可以使用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
推荐阅读
- javascript - Redux 自定义 observeStore-function 的输入
- apache-spark - 在 Pyspark 数据框中创建 JSON
- python - 无法从跨两个包共享的命名空间导入符号
- flutter - 如果向下滑动以关闭,则颤振 GestureDetector
- windows - 使用 inno setup 如何使用版本更新应用程序?
- java - 如何限制并行化 Spring WebClient 响应的处理?
- networking - 网络示例 - IP 地址
- sql - 在没有子查询的情况下选择由同一个表中的另一个值排序的值
- amazon-web-services - 如何使用 cloudformation 在 AWS cognito 上设置验证属性?
- azure-log-analytics - 如何通过 kusto 查询将 JSON 输出(数组形式)投影为表格形式