Skip to content

Instantly share code, notes, and snippets.

View thepassle's full-sized avatar

Pascal Schilp thepassle

View GitHub Profile
@thepassle
thepassle / main.js
Created October 28, 2019 14:31
installing5
button.addEventListener('click', async () => {
deferredPrompt.prompt();
// ...
});
@thepassle
thepassle / main.js
Created October 28, 2019 14:30
installing4
let deferredPrompt;
window.addEventListener('beforeinstallprompt', e => {
e.preventDefault(); // prevent mini info bar popping up
deferredPrompt = e;
// show install button somewhere!
});
@thepassle
thepassle / sw.js
Created October 28, 2019 14:29
updating12
navigator.serviceWorker.addEventListener('controllerchange', () => {
window.location.reload();
});
@thepassle
thepassle / sw.js
Created October 28, 2019 14:29
updating9
self.addEventListener('message', (event) => {
if (event.data && event.data.type === 'SKIP_WAITING') {
self.skipWaiting();
}
});
@thepassle
thepassle / main.js
Created October 28, 2019 14:28
updating8
button.addEventListener('click', () => {
newWorker.postMessage({ type: 'SKIP_WAITING' });
});
@thepassle
thepassle / main.js
Created October 28, 2019 14:27
updating6
const reg = await navigator.serviceWorker.getRegistration();
reg.addEventListener('updatefound', () => {
const newWorker = reg.installing;
newWorker.addEventListener('statechange', () => {
if (newWorker.state === 'installed') {
// Update available! Show an install button
}
});
});
@thepassle
thepassle / main.js
Created October 28, 2019 14:27
updating4
const reg = await navigator.serviceWorker.getRegistration();
reg.addEventListener('updatefound', () => {
// ...
});
@thepassle
thepassle / sw.js
Created October 28, 2019 14:22
skipwaiting12
self.addEventListener(fetch, event => {
// ready to handle requests!
});
@thepassle
thepassle / sw.js
Created October 28, 2019 14:21
skipwaiting11
self.addEventListener('activate', event => {
// clean up old caches etc etc
clients.claim();
});
@thepassle
thepassle / sw.js
Created October 28, 2019 14:21
skipwaiting10
self.addEventListener('activate', event => {
// clean up old caches etc etc
// ...
});