From a321e8dd4ce4d5b6171f0e163625dcb75900edd5 Mon Sep 17 00:00:00 2001 From: osiu97 Date: Wed, 8 Jul 2026 19:02:00 +0200 Subject: [PATCH] upgrade to installable PWA. Fixes #6 --- index.html | 10 ++++++++++ manifest.json | 17 +++++++++++++++++ sw.js | 5 +++++ 3 files changed, 32 insertions(+) create mode 100644 manifest.json create mode 100644 sw.js diff --git a/index.html b/index.html index 7597861..b68d535 100644 --- a/index.html +++ b/index.html @@ -9,6 +9,7 @@ content="WijiBoard SCARA arm control dashboard. Web Bluetooth interface for the ESP32-C3 stepper controller." /> + @@ -181,6 +182,15 @@ // ── Init router (last step) ──────────────────────────────────── Router.init('#view', '#home'); + // ── Register Service Worker for PWA ──────────────────────────── + if ('serviceWorker' in navigator) { + window.addEventListener('load', () => { + navigator.serviceWorker.register('./sw.js').catch(err => { + console.warn('[PWA] Service Worker registration failed:', err); + }); + }); + } + // ── Check Web Bluetooth availability ────────────────────────── if (!navigator.bluetooth) { setTimeout(() => { diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..4c70801 --- /dev/null +++ b/manifest.json @@ -0,0 +1,17 @@ +{ + "name": "WijiBoard Control", + "short_name": "WijiBoard", + "description": "WijiBoard SCARA arm control dashboard.", + "start_url": ".", + "display": "standalone", + "background_color": "#1e1e1e", + "theme_color": "#1a73e8", + "icons": [ + { + "src": "favicon.svg", + "sizes": "192x192 512x512 any", + "type": "image/svg+xml", + "purpose": "any maskable" + } + ] +} diff --git a/sw.js b/sw.js new file mode 100644 index 0000000..9a7adbc --- /dev/null +++ b/sw.js @@ -0,0 +1,5 @@ +// Minimal Service Worker to satisfy PWA installability requirements +self.addEventListener('fetch', function(event) { + // We do not intercept or cache anything, just pass the request through. + // This minimal fetch listener is enough to trigger the PWA install prompt. +});