首页 > 解决方案 > safari 14.1 认为当我在 workbox.window 上调用 update() 时没有软件更新

问题描述

这只是今天早上才开始发生的,尽管我已经 6 天没有推送更新了。我们的一些 webapp 用户突然收到更新消息,当他们单击更新时,它似乎可以工作,但他们马上又回来了。我正在使用 workbox ^6.1.2 窗口,它已经工作了好几个月:

  const wb = new Workbox("/service-worker.js");

  wb.addEventListener("waiting", (event) => {
     me.waiting = event.sw;
     me.showRefreshUI(event);
  });

  wb.register();

  setInterval(() => {
    log.debug("Checking for updates...");
    wb.update();
  }, 1000 * 60 * 5);

如果用户单击我的更新按钮,我会这样做:

  navigator.serviceWorker.addEventListener("controllerchange", () => {
    window.location.reload();
  });
  messageSW(this.waiting, { type: "SKIP_WAITING" });

只要我不推送任何软件更新,我就认为对 wb.update() 的调用不会做任何事情,但截至今天早上,对于 safari 14.1 用户来说,它现在认为每次都有新的更新。

这可能与我没有使用 isExternal 或“externalwaiting”消息正确处理“外部”工作人员有关吗?

标签: safariworkboxworkbox-window

解决方案


推荐阅读