From 9a579559026750aed635d54de68b74f92bef634d Mon Sep 17 00:00:00 2001 From: elpatron Date: Wed, 23 Jul 2025 18:06:23 +0200 Subject: [PATCH] =?UTF-8?q?PWA:=20manifest.json,=20Service=20Worker,=20Met?= =?UTF-8?q?a-Tags=20und=20README-Hinweis=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 8 ++++++++ static/manifest.json | 14 ++++++++++++++ static/service-worker.js | 20 ++++++++++++++++++++ templates/index.html | 7 +++++++ 4 files changed, 49 insertions(+) create mode 100644 static/manifest.json create mode 100644 static/service-worker.js diff --git a/README.md b/README.md index 9f9d256..4919e1f 100644 --- a/README.md +++ b/README.md @@ -97,6 +97,14 @@ Starte mit: docker-compose up --build ``` +## Progressive Web App (PWA) + +Elpatrons Datumsrechner ist als PWA installierbar (z.B. auf Android/iOS-Homescreen oder Desktop). Die App funktioniert offline für die Startseite und statische Ressourcen, die Datumsberechnung bleibt serverseitig. + +- Manifest und Service Worker sind integriert +- App-Icon und Theme-Color für Homescreen +- Installation über Browser-Menü ("Zum Startbildschirm hinzufügen") + ## Entwicklung & Hinweise - Die HTML-Templates liegen im Ordner `templates/` (Trennung von Logik und Darstellung) diff --git a/static/manifest.json b/static/manifest.json new file mode 100644 index 0000000..4ae849d --- /dev/null +++ b/static/manifest.json @@ -0,0 +1,14 @@ +{ + "name": "Elpatrons Datumsrechner", + "short_name": "Datumsrechner", + "start_url": "/", + "display": "standalone", + "background_color": "#2563eb", + "theme_color": "#2563eb", + "description": "Open Source Web-App für Kalender- und Datumsberechnungen.", + "icons": [ + { "src": "/favicon.png", "sizes": "32x32", "type": "image/png" }, + { "src": "/favicon.ico", "sizes": "48x48 64x64 128x128 256x256", "type": "image/x-icon" }, + { "src": "/logo.svg", "sizes": "any", "type": "image/svg+xml" } + ] +} \ No newline at end of file diff --git a/static/service-worker.js b/static/service-worker.js new file mode 100644 index 0000000..13e68cf --- /dev/null +++ b/static/service-worker.js @@ -0,0 +1,20 @@ +const CACHE_NAME = 'datumsrechner-cache-v1'; +const urlsToCache = [ + '/', + '/static/style.css', + '/favicon.ico', + '/favicon.png', + '/logo.svg', +]; +self.addEventListener('install', event => { + event.waitUntil( + caches.open(CACHE_NAME) + .then(cache => cache.addAll(urlsToCache)) + ); +}); +self.addEventListener('fetch', event => { + event.respondWith( + caches.match(event.request) + .then(response => response || fetch(event.request)) + ); +}); \ No newline at end of file diff --git a/templates/index.html b/templates/index.html index 711e729..91bc06e 100644 --- a/templates/index.html +++ b/templates/index.html @@ -20,6 +20,8 @@ + +