我有以下内容:
//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中:
self.onmessage=function(e){
console.log(e.data);
}
但是在main.js中,出现此错误:
未捕获的TypeError:无法读取null的属性'postMessage'
为什么会这样?
答案 0 :(得分:4)
这是因为您将使用
行进入新功能navigator.serviceWorker.register('worker.js').then(function(worker){
并以“工作人员”的身分将您的服务人员传递给我们
您应该可以替换
navigator.serviceWorker.controller.postMessage([MESSAGE HERE]);
使用
worker.active.postMessage('your message');