Caching 在单击时缓存整个PWA

Caching 在单击时缓存整个PWA,caching,service-worker,progressive-web-apps,cacheapi,Caching,Service Worker,Progressive Web Apps,Cacheapi,我只是想知道是否有一种方便的方法可以在单击时缓存整个PWA?就像你从应用商店下载并安装本机应用一样 如果我没有错的话,目前唯一的解决方案是必须将所有现有文件添加到一个数组中,并使用cache.addAll方法(如下所示)。如果单击按钮,则可以执行该功能 function downloadApp() { caches.open(appCache).then(function(cache) { return cache.addAll([ '/', '/files/

我只是想知道是否有一种方便的方法可以在单击时缓存整个PWA?就像你从应用商店下载并安装本机应用一样

如果我没有错的话,目前唯一的解决方案是必须将所有现有文件添加到一个数组中,并使用cache.addAll方法(如下所示)。如果单击按钮,则可以执行该功能

function downloadApp() {
  caches.open(appCache).then(function(cache) {
    return cache.addAll([
      '/',
      '/files/1',
      '/files/2',
      // ...
      // All PWA files
    ]);
  })
}

您知道更好的方法吗?

addAll
解析并缓存应用程序时,可能会通过
postMessage
通知应用程序?对于较大的应用程序,有一个进度指示器吗?但是有没有比使用
addAll
方法更好的方法呢?如果你想在点击时下载整个应用程序,你必须维护一个包含所有文件URL的数组,这不是很方便。我现在还不知道。您始终可以动态地将文件列表传递给软件,以避免在SWAlright中进行静态声明,无论如何,谢谢!我刚刚看到有一种方法可以下载zip文件,在ServiceWorker中解压缩,然后缓存所有单独的文件。看见因此,您可以捆绑您的PWA并通过单个请求使其脱机可用。