javascript - DOMException : Registration failed - permission denied

标签 javascript google-chrome service-worker web-push

我有一个运行良好的网络通知脚本。但是,当我在 chrome 版本 43 中进行测试时,我收到错误“DOMException:注册失败 - 权限被拒绝”。此错误发生在订阅阶段。

这是通常的注册过程的代码片段

navigator.serviceWorker.register('sw.js').then(function(reg) {
    console.log('[ServiceWorker] Registration Obj', reg);
    reg.pushManager.subscribe({
        userVisibleOnly: true
    }).then(function(sub) {
        //This never executes and catch gets called
        console.log('Subscription successful, Subscription endpoint:', sub.endpoint);
    }).catch(function(error) {
        console.log("Error during subscription ", error);
    });
}).catch(function(error) {
    if (Notification.permission === 'denied') {
        console.warn('Permission for Notifications was denied');
    } else {
        console.error('Unable to subscribe to push.', error);
    }
});

在上面的代码中,错误发生在我执行 reg.pushManager.subscribe() 的步骤中。 .
  • 这在 chrome 49 中不会发生。
  • 这个错误总是出现在 chrome 版本 43 上。

  • [注意] 我认为这是 chrome 版本 43 的一般问题,但是当我检查 goroost.com 和 pushcrew 等网站时,它们似乎工作正常。只有我的不工作

    最佳答案

    我遇到过这个问题。
    除了般若答案外,这可能是由于浏览器通知在屏蔽与否时不小心点击造成的。
    要在 Chrome 中解决此问题,请转到设置->单击“显示高级设置”->在“隐私”下单击“内容设置”->然后在“通知”下选择“管理异常”。进入此处后,允许通知受影响的 URL。

    关于javascript - DOMException : Registration failed - permission denied,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36126541/

    相关文章:

    javascript - 从直接链接将 redux 项加载到状态

    javascript - 记住变量的历史

    javascript - 使用媒体 ="print"时如何扩展文本框?

    python - Service Worker 让我的网络速度变慢! 、如何使用workbox为Django work添加离线功能

    javascript - Service Worker 注册问题

    javascript - 有没有办法打开mailto : and tel: links from a service worker?

    javascript - 如何检查对象在knockout js中是否有任何属性

    html - 使用 chrome 检查响应式设计

    使用 MySQL 搜索的 PHP 代码在 IE 中会中断,但在 Chrome 中可以正常工作

    javascript - chrome console.log 的别名