Files
nx9-chronoseal-rs/www/js/pwa.js
T

42 lines
1.3 KiB
JavaScript

/* ============================================================
ChronoSeal Website — pwa.js
Progressive Web App: service worker registration + install
============================================================ */
(function () {
'use strict';
if ('serviceWorker' in navigator) {
window.addEventListener('load', function () {
navigator.serviceWorker.register('/sw.js').then(function (reg) {
/* Update found — silent refresh */
reg.addEventListener('updatefound', function () {
var worker = reg.installing;
if (!worker) return;
worker.addEventListener('statechange', function () {
if (worker.state === 'activated' && navigator.serviceWorker.controller) {
/* New version available — user can refresh */
}
});
});
}).catch(function () {
/* SW registration failed — app still works */
});
});
}
/* ---- Installable PWA banner (A2HS) ---- */
var deferredPrompt = null;
window.addEventListener('beforeinstallprompt', function (e) {
e.preventDefault();
deferredPrompt = e;
/* Could show a custom install banner here */
});
window.addEventListener('appinstalled', function () {
deferredPrompt = null;
});
})();