31
loading...
This website collects cookies to deliver better user experience
// check for support
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('my-service-worker.js');
}
<link href="manifest.json" rel="manifest">
{
"name": "Example App",
"short_name": "ExApp",
"display": "standalone",
"start_url": "/",
"icons": [
{
"src": "/images/icon-144.png",
"sizes": "144x144",
"type": "image/png"
}
]}
self.addEventListener('fetch', e => {
// Empty for now
});
self.addEventListener('install', async e => {
const cache = await caches.open('files');
cache.addAll([
'./script.js',
'./style.css',
'./assets/image.png',
]);
});
self.addEventListener('fetch', async e => {
const req = e.request;
const cache = await caches.open('data');
try {
const res = await fetch(req);
cache.put(req, res.clone());
await e.respondWith(res);
} catch {
const res = await cache.match(req);
if (res) {
await e.respondWith(res);
} else {
e.respondWith(getFallback(req));
}
}
});
@media all and (display-mode: standalone) {
body {
/* … */
}
}