繁体   English   中英

当应用程序已加载时 PWA 更新服务工作者

[英]PWA update service worker when app is already loaded

我正在构建一个 PWA 并且我正在寻找一种在应用程序已经打开和加载时更新服务工作者的方法。

例如,用户在手机上打开应用程序一次,然后在白天切换其他应用程序,而没有完全关闭 PWA。

如果我在两者之间上传了一个新版本,那么如何更新 Service Worker?

以及是否有可能在用户使用应用程序时通知服务有关更新的方法?

Service Worker 是否能够不时自动检查是否上传了新内容? 整个应用程序被缓存并从 s3 存储桶提供服务。

任何建议将不胜感激。

来自 MDN 上的“ServiceWorkerRegistration.update()”

ServiceWorkerRegistration 接口的 update 方法尝试更新 Service Worker。 它获取工作线程的脚本 URL,如果新工作线程与当前工作线程不是逐字节相同的,则安装新工作线程。 如果前一次提取发生在 24 小时前,则工作器的提取会绕过任何浏览器缓存。

if ('serviceWorker' in navigator) {
  navigator.serviceWorker.register('/sw-test/sw.js', {scope: 'sw-test'}).then(function(registration) {
    // registration worked
    console.log('Registration succeeded.');
    button.onclick = function() {
      registration.update();
    }
  }).catch(function(error) {
    // registration failed
    console.log('Registration failed with ' + error);
  });
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM