【问题标题】:How can I know whether permission for Push notification is activated or not in service worker?我如何知道 Service Worker 中是否激活了推送通知的权限?
【发布时间】:2019-02-01 12:46:15
【问题描述】:

我正在开发一个渐进式 Web 应用程序 (PWA) 项目,该项目在服务人员中进行推送通知。使用 FCM(Firebase 云消息传递)发出推送通知是成功的,但我想知道我的网络应用程序是否有权从用户的浏览器发送推送通知。如果可能的话,我想显示用户按钮来请求推送通知的权限。可能吗?

【问题讨论】:

  • 在这种情况下不使用messaging.requestPermission() 吗?
  • 这更像是请求许可。在这种情况下,我想在请求许可之前知道浏览器是否允许通知。实际上我用navigator.serviceWorker.register(swUrl).then(registration => { firebase.messaging().useServiceWorker(registration); registration.pushManager.getSubscription().then(subscription => { ... }) })这样的代码解决了这个问题。
  • 在这段代码中,firebase 连接了service worker,所以如果firebase 获得了权限,它会注册在service worker 的subscription 中,我可以从service worker 中检查浏览器是否有权限。

标签: firebase firebase-cloud-messaging service-worker progressive-web-apps


【解决方案1】:

您可以使用Notification.permission查看您的网站是否可以发送推送消息和显示通知。

if (Notification.permission === "granted") {
  // Push notification permission granted.
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-24
    • 2018-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多