服务工作者 PostMessage 错误 [英] Service Worker PostMessage Error
本文介绍了服务工作者 PostMessage 错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下几点:
//main.js
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('worker.js').then(function(worker){
// firebase.messaging().useServiceWorker(worker);
navigator.serviceWorker.controller.postMessage([MESSAGE HERE]);
});
}
在 worker.js 中:
And in worker.js:
self.onmessage=function(e){
console.log(e.data);
}
但在 main.js 中,我收到此错误:
But in main.js, I get this error:
未捕获的类型错误:无法读取 null 的属性postMessage"
Uncaught TypeError: Cannot read property 'postMessage' of null
为什么会这样?
推荐答案
这是因为您要使用一行
This is because you are going into a new function with the line
navigator.serviceWorker.register('worker.js').then(function(worker){
并将您的服务工作者作为工作者"传递
and passing in your service worker as 'worker'
你应该可以替换
navigator.serviceWorker.controller.postMessage([MESSAGE HERE]);
与
worker.active.postMessage('your message');
这篇关于服务工作者 PostMessage 错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文