41e88e0acf
Configure manifest.json with scope, maskable icons, and categories. Add iOS/Android meta tags for standalone behavior. Create pwa.css for native touch/scroll handling and safe area insets. Add oikos-install-prompt Web Component with Chrome install flow and iOS guidance. Optimize service worker with network-first navigation and expanded precache (v19). Add dynamic theme-color per route and modal overlay dimming in standalone mode. Generate placeholder icons via sharp script. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
24 lines
773 B
JavaScript
24 lines
773 B
JavaScript
/**
|
|
* Modul: Service Worker Registrierung
|
|
* Zweck: Ausgelagert aus index.html um CSP-Inline-Script-Verletzung zu vermeiden.
|
|
* Handhabt nahtlose Updates via controllerchange.
|
|
* Abhängigkeiten: keine
|
|
*/
|
|
|
|
if ('serviceWorker' in navigator) {
|
|
window.addEventListener('load', () => {
|
|
navigator.serviceWorker.register('/sw.js').catch((err) => {
|
|
console.warn('[SW] Registrierung fehlgeschlagen:', err);
|
|
});
|
|
});
|
|
|
|
// Nahtloses Update: Neuer SW hat skipWaiting() + clients.claim() aufgerufen
|
|
// → Controller wechselt → Seite neu laden für konsistenten Stand
|
|
let refreshing = false;
|
|
navigator.serviceWorker.addEventListener('controllerchange', () => {
|
|
if (refreshing) return;
|
|
refreshing = true;
|
|
window.location.reload();
|
|
});
|
|
}
|