# PWA & Offline ## Manifest - File: `public/manifest.webmanifest` - `display: standalone`, `orientation: any` - Icons: SVG any + maskable - `start_url` / `scope`: `/` ## Service Worker - File: `public/sw.js` - Cache version: `geonet-console-v3` - Strategi: cache shell + offline fallback - Halaman offline: `public/offline.html` ## Registrasi & Install - `public/js/pwa-register.js` — registrasi SW - `public/js/pwa-install.js` — prompt install - Partial: `partials/pwa-install-prompt.blade.php` - Dismiss state: `localStorage` keys `geonet-console-pwa-install-dismissed`, `geonet-console-pwa-installed` - iOS hint: instruksi "Add to Home Screen" ## PWA Head - `partials/pwa-head.blade.php`: manifest link, apple-touch-icon, meta theme-color ## vs Baseline Enterprise (`15-pwa-enterprise.mdc`) | Fitur | Status | |-------|--------| | Install to Home Screen | ✅ Ada | | Offline Mode | ✅ Partial (shell + offline page) | | Push Notification | ❌ Belum | | Background Sync | ❌ Belum | ## Catatan UX - Install prompt fixed bottom, offset sidebar di desktop - Login offline: badge peringatan, form tetap tampil tapi butuh koneksi