【问题标题】:Is there a way to update PWA cache automatically?有没有办法自动更新 PWA 缓存?
【发布时间】:2020-12-11 15:30:24
【问题描述】:

我最近使用工作箱将网站变成了 PWA,并添加到我的 Android 设备上的主屏幕。但是,当我更新网站时,PWA 不会在 android 上更新。

下面是代码 manifest.json 代码:

{"short_name":"SSPNG","name":"Security Shields PNG Limited","icons":[{"src":"/assets/img/fb-pro-pic0.png","type":"image/png","sizes":"512x512"},{"src":"/assets/img/fb-pro-pic0.png","type":"image/png","sizes":"512x512"}],"start_url":"/index.html","background_color":"#fff","theme_color":"#fff","display":"standalone","orientation":"portrait"}

这里是service-worke注册码:

<script>
    if ('serviceWorker' in navigator) {
      window.addEventListener('load', () => {
        navigator.serviceWorker.register('/sw.js')
          .then(registration => {
            console.log('Service Worker registered! ????');
          })
          .catch(err => {
            console.log('Registration failed ???? ', err);
          });
      });
    }
  </script>

我正在寻找一种解决方案,用户无需手动清除缓存表单浏览器应用存储并且 PWA 会自动更新。我想我使用了缓存回退方法,我正在寻找一种替代方案,可以强制更新现有 PWA 中的缓存。

【问题讨论】:

标签: android caching progressive-web-apps service-worker workbox


【解决方案1】:

恐怕你是在把两件事混为一谈:

  • manifest.json 仅包含对图标文件的引用,start_urlscope
  • service-worker.js 应包含 一个数组,其中包含指向您的 PWA 的 HTML、CSS、JavaScript 和其他 资产文件 的路径。此外,service-worker.js 还应该为 PWA 安装、激活/删除和获取事件定义事件侦听器/处理程序。

最后,最终触发 PWA 自动更新的是explained here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-17
    • 2019-07-01
    • 2013-06-06
    • 1970-01-01
    • 1970-01-01
    • 2012-10-16
    • 1970-01-01
    • 2017-03-21
    相关资源
    最近更新 更多