无法订阅推送通知(&A;T) [英] Can't subscribe to Push notification
本文介绍了无法订阅推送通知(&A;T)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试订阅PushManager以发送推送通知,但调用Subscribe时总是出错。
这是我的订阅电话
registration.pushManager.subscribe({ userVisibleOnly: true })
.then(function (subscription) { /* ... */})
.catch(function (err) { /* ... */})
如您所见,没有什么奇怪的,而且该调用总是抛出
DOMException:注册失败-推送服务错误
我不确定为什么会这样。 我到目前为止所检查的
- 我的
manifest.json
中有一个gcm_sender_id
属性。 - 通知权限在客户端被授予。
registration.pushManager.getSubscription()
始终获取null
和订阅始终引发上述错误。
我还应该看什么?欢迎任何帮助成功订阅推送通知的人,顺便说一下,我正在使用Chrome 55,如果您需要更多信息,请让我知道。
编辑:所有注册码都在registerServiceWorker
函数上。
谢谢。
推荐答案
假定您已经正确注册了服务工作者,使用如下内容:
navigator.serviceWorker.register('/serviceworker.js', {
scope: '/'
});
我建议您像我一样为您的服务工作者使用相对路径,而不是像您在代码中那样使用window.Location.Origin,并且最好将ServiceWorker文件保存在根目录。
使用此方法订阅推送并获取终结点。
navigator.serviceWorker.ready
.then(function(serviceWorkerRegistration) {
return serviceWorkerRegistration.pushManager.subscribe({
userVisibleOnly: true
});
})
.then(function(subscription) {console.log(subscription.endpoint);});
如果仍不起作用: -尝试从Chrome://serviceWorker-interals注销现有Worker,并确保在执行此操作时关闭所有选项卡。
如果仍不起作用: -尝试通过在Chrome右上角点击您的名字来创建一个新的Chrome个人资料。(我曾经面对过这一点)
检查this代码以供参考。
这篇关于无法订阅推送通知(&A;T)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文