Chrome 和 Firebase 推送通知服务人员未准备好
Posted
技术标签:
【中文标题】Chrome 和 Firebase 推送通知服务人员未准备好【英文标题】:Chrome & Firebase Push Notifications service worker not ready 【发布时间】:2016-11-07 17:54:35 【问题描述】:在关注此代码实验室时: https://developers.google.com/web/fundamentals/getting-started/codelabs/push-notifications/
我下载了push-notifications.git
项目并将最终的/completed/08-unsubscribe
示例上传到我的HTTPS Web 服务器。
当我第一次访问这个页面时,控制台日志显示:
Service Worker is supported
sw.js:24 Started
sw.js:28 Installed
sw.js:32 Activated
第二次访问页面显示:
Service Worker is supported
我试图调试的问题是我没有从这个函数得到Service Worker is ready
输出:
if ('serviceWorker' in navigator)
console.log('Service Worker is supported');
navigator.serviceWorker.register('/sw.js').then(function()
return navigator.serviceWorker.ready;
).then(function(serviceWorkerRegistration)
reg = serviceWorkerRegistration;
subscribeButton.disabled = false;
console.log('Service Worker is ready :^)', reg);
).catch(function(error)
console.log('Service Worker Error :^(', error);
);
阻止我的订阅按钮启用并触发console.log('Service Worker is ready :^)', reg);
或console.log('Service Worker Error :^(', error);
消息的问题在哪里?
【问题讨论】:
【参考方案1】:您的代码是正确的。 如果你给控制台,它应该打印。我验证了它,它有效。 只需提供控制台即可检查。
if ('serviceWorker' in navigator)
console.log('Service Worker is supported');
navigator.serviceWorker.register('/sw.js').then(function()
return navigator.serviceWorker.ready;
).then(function(serviceWorkerRegistration)
console.log('Service Worker is ready :^)', reg);
).catch(function(error)
console.log('Service Worker Error :^(', error);
);
【讨论】:
嗯,这就是我看到的结果——订阅按钮永远不会启用,我也没有收到准备就绪或错误事件:i.imgur.com/X1dhsQM.png 在按钮启用前提供控制台日志。你能告诉你是如何初始化订阅按钮的吗以上是关于Chrome 和 Firebase 推送通知服务人员未准备好的主要内容,如果未能解决你的问题,请参考以下文章
通过 Firebase 从 Laravel 服务器向 Android 应用发送推送通知