Javascript 将来自服务人员的消息发布到客户端页面

Javascript 将来自服务人员的消息发布到客户端页面,javascript,service-worker,Javascript,Service Worker,今天,我们可以找到许多从服务人员向客户机发送消息的示例,但总是在服务人员接收到消息之后 我想知道我们是否可以独立于此事件发送消息?如果是,怎么做?我尝试了很少的事情,但没有成功 在我的例子中,它用于在我的服务人员收到push事件时将客户端重定向到新页面。的接口在中介绍。不幸的是,从45版开始,Google Chrome还没有完全实现这个功能,不过我希望它能在以后的某个版本中实现 当功能可用时,您可以使用获取由服务人员控制的任何打开页面的列表,并在您关心的特定客户端上调用postMessage()

今天,我们可以找到许多从服务人员向客户机发送消息的示例,但总是在服务人员接收到
消息之后

我想知道我们是否可以独立于此事件发送消息?如果是,怎么做?我尝试了很少的事情,但没有成功

在我的例子中,它用于在我的服务人员收到
push
事件时将客户端重定向到新页面。

的接口在中介绍。不幸的是,从45版开始,Google Chrome还没有完全实现这个功能,不过我希望它能在以后的某个版本中实现

当功能可用时,您可以使用获取由服务人员控制的任何打开页面的列表,并在您关心的特定客户端上调用
postMessage()
方法。您需要记住,完全有可能不会有任何选项卡打开由您的服务人员控制的页面,在这种情况下,您可能希望使用您的目标URL打开新的客户端页面

但是,有一种方法可能更适合您的用例(尽管Chrome 45目前也不支持):,它将指示由服务人员控制的打开的选项卡导航到同一来源上的不同URL。

client.js:

const swListener = new BroadcastChannel('swListener');
swListener.onmessage = function(e) {
  console.log('swListener Received', e.data);
};
service-worker.js

  const swListener = new BroadcastChannel('swListener');
   swListener.postMessage('This is From SW');