如何检测当前网站是否已阻止推送通知?

7

我正在使用OneSignal,希望能够检测以下三种状态之间的当前订阅状态:

  • 用户正在阻止通知
  • 未订阅
  • 已订阅

OneSignal API提供了isPushNotificationsEnabled函数,但它只能检测两种状态:允许或不允许推送。

我想知道是否有更一般的(在OneSignal API之外)方法来检测,在一些浏览器中至少可以实现这一点。


2
请尝试阅读:https://developer.mozilla.org/zh-CN/docs/Web/API/Push_API - Kevin Jantzer
2
还有这个:https://developer.mozilla.org/zh-CN/docs/Web/API/Push_API/Using_the_Push_API - Kevin Jantzer
@KevinJantzer 谢谢!我发现在 Firefox 和 Chrome 中,我可以通过 Notification.permission 来解决这个问题。 - I Hafid
1个回答

12

解决方案就是Notification.permission,它有三种状态:

  • 默认状态(default)
  • 已允许状态(granted)
  • 已拒绝状态(denied)

这正是我所需要的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接