diff --git a/img/icon-192.png b/img/icon-192.png new file mode 100644 index 0000000..9b33e54 Binary files /dev/null and b/img/icon-192.png differ diff --git a/img/icon-512.png b/img/icon-512.png new file mode 100644 index 0000000..2263a16 Binary files /dev/null and b/img/icon-512.png differ diff --git a/js/index.js b/js/index.js index 49410bd..77a4b33 100644 --- a/js/index.js +++ b/js/index.js @@ -254,3 +254,8 @@ validatePurpose(document.querySelector("#purpose input")); // generate qr code on first visit regenerate(); + +if ('serviceWorker' in navigator) { + navigator.serviceWorker.register('/js/service-worker.js'); +} + diff --git a/js/service-worker.js b/js/service-worker.js new file mode 100644 index 0000000..126db41 --- /dev/null +++ b/js/service-worker.js @@ -0,0 +1,24 @@ +self.addEventListener('install', event => { + event.waitUntil( + caches.open('app-cache').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' + ]); + }) + ); +}); + +self.addEventListener('fetch', event => { + event.respondWith( + caches.match(event.request).then(response => { + return response || fetch(event.request); + }) + ); +}); +