【发布时间】: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