我有以下几点:
//main.js
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('worker.js').then(function(worker){
// firebase.messaging().useServiceWorker(worker);
navigator.serviceWorker.controller.postMessage([MESSAGE HERE]);
});
}
Run Code Online (Sandbox Code Playgroud)
在 worker.js 中:
self.onmessage=function(e){
console.log(e.data);
}
Run Code Online (Sandbox Code Playgroud)
但在 main.js 中,我收到此错误:
未捕获的类型错误:无法读取 null 的属性“postMessage”
为什么会这样?
这是因为您将使用该行进入一个新函数
navigator.serviceWorker.register('worker.js').then(function(worker){
Run Code Online (Sandbox Code Playgroud)
并将您的服务人员传递为“工人”
你应该可以更换
navigator.serviceWorker.controller.postMessage([MESSAGE HERE]);
Run Code Online (Sandbox Code Playgroud)
和
worker.active.postMessage('your message');
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3867 次 |
最近记录: |