Javascript 在Safari(iOS)中,有没有一种方法可以从服务人员向客户端发送消息?

Javascript 在Safari(iOS)中,有没有一种方法可以从服务人员向客户端发送消息?,javascript,service-worker,Javascript,Service Worker,当网络请求由于脱机而失败时,我需要通知客户端并更新DOM 这在支持BroadcastChannel API的浏览器上是很容易做到的(如下面的代码示例所示),但是我完全没有办法在iOS Safari中找到解决方法 缓存似乎是服务人员和客户机之间通信的唯一明显选择,但我不确定如何利用缓存来做类似的事情,因为我看到的所有示例都将缓存用作服务资源的手段 // Clone the request to ensure it's safe to read when // adding to the

当网络请求由于脱机而失败时,我需要通知客户端并更新DOM

这在支持BroadcastChannel API的浏览器上是很容易做到的(如下面的代码示例所示),但是我完全没有办法在iOS Safari中找到解决方法

缓存似乎是服务人员和客户机之间通信的唯一明显选择,但我不确定如何利用缓存来做类似的事情,因为我看到的所有示例都将缓存用作服务资源的手段


  // Clone the request to ensure it's safe to read when
  // adding to the Queue.
  const promiseChain = fetch(event.request.clone())
    .catch((err) => {
      isOffline = true;
      const bc = new BroadcastChannel('wb_channel');
      bc.postMessage('offline');
      return queue.pushRequest({ request: event.request });
    });
  event.waitUntil(promiseChain);
});
提前谢谢


Adam

您可以使用
postMessage
API。使用它,您可以在客户机和服务人员之间传递消息