diff --git a/js/index.js b/js/index.js index 81c7b6b..d03fe41 100644 --- a/js/index.js +++ b/js/index.js @@ -255,7 +255,8 @@ validatePurpose(document.querySelector("#purpose input")); // generate qr code on first visit regenerate(); -if ("serviceWorker" in navigator) { - navigator.serviceWorker.register("/js/service-worker.js"); +if ('serviceWorker' in navigator) { + navigator.serviceWorker.register('/sw.js') + .catch(err => console.error('Service Worker registration failed:', err)); } diff --git a/js/service-worker.js b/js/service-worker.js index 17e183c..35ad423 100644 --- a/js/service-worker.js +++ b/js/service-worker.js @@ -20,7 +20,28 @@ self.addEventListener("install", (event) => { }); */ -self.addEventListener("fetch", event => { - event.respondWith(fetch(event.request)); +self.addEventListener('install', event => { + event.waitUntil( + caches.open('bezahlbrudi-cache-v1').then(cache => { + return cache.addAll([ + '/', + '/index.html', + '/css/bulma.min.css', + '/js/index.js', + '/js/qr-creator.min.js', + '/img/icon-192.png', + '/img/icon-512.png' + // add any other core assets here + ]); + }) + ); +}); + +self.addEventListener('fetch', event => { + event.respondWith( + caches.match(event.request).then(cached => { + return cached || fetch(event.request); + }) + ); });