微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

移动浏览器缓存的 PWA 安装应用程序问题

如何解决移动浏览器缓存的 PWA 安装应用程序问题

我使用 HTML、CSS 和 Javascript 开发了一个 PWA 应用程序。当我在浏览器中打开时,我收到 add to home screen提示。点击后,应用会添加home screen 和移动设备中的 Apps我有以下服务工作者代码

//VERSION: 3
const pb_cache = "cv1";
const assets = [
    "./manifest.json","./index.html","./offline.html",]

self.addEventListener("install",installEvent => {
  installEvent.waitUntil(
    caches.open(pb_cache)
    .then((cache) => {
      return cache.addAll(assets)
      .then(() => {
        return self.skipwaiting(); //To forces the waiting service worker to become the active service worker
      })
    })
  );
});

self.addEventListener('fetch',function(event) {
  event.respondWith(
    caches.match(event.request).then(function(response) {
      if (response) {
        return response;
      }
      return fetch(event.request).then(function(response) {
        if (response.status === 404) {
          return caches.match('/offline.html');
        }
        return response
      });
    }).catch(function() {
      return caches.match('/offline.html');
    })
  );
});

我在服务工作线程 //VERSION: 3 顶部使用哈希来提供应用更新。一旦应用程序打开并且网络可用,Service Worker 就会更新所有缓存。如果没有网络,则从缓存中获取资源。一切正常。每当打开应用程序时,应用程序就会更新。但最近,该应用程序正在更新。我必须清除移动 Chrome 浏览器缓存才能使应用自行更新。

  1. 编写代码是为了绕过本地缓存。我做错了什么?

  2. 如果可能的话,我想通知客户有可用的更新。并且仅当用户单击更新通知时才更新应用程序。是否值得做,或者我应该在应用程序打开且网络可用时进行更新?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?