我的window.js中有这个...
const wb = new Workbox('sw.js');
wb.messageSW({type:'START'});
wb.addEventListener('message', e=>{
console.log(e);
});
...在我的 sw.js 中,我有...
self.addEventListener('message', (e)=>{
if (e.data) {
switch(e.data.type) {
case 'START':
//do some processing here...
//...then how do I send a message to the client here so...
//...that it will be received by the wb.addEventListener('message',... in window.js?
break;
}
}
});
我尝试通过 e.ports[0] 中的 MessagePort.postMessage() 发送,但没有成功。我觉得这是基本的东西,尤其是使用 Workbox 类,但我就是无法让它工作。
我最后的手段是使用 BroadcastChannel(带有 polyfill),但我首先尝试这个,因为它可能不需要任何 polyfill 才能工作。