From a008561749fc1dda5ca806ce09ba31094b7d5fec Mon Sep 17 00:00:00 2001 From: Admin Date: Sat, 22 Nov 2025 21:19:35 +0200 Subject: [PATCH] add PWA support --- assets/public/client/manifest.json | 17 +++++++++++++++++ assets/public/client/test.js | 28 ++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 assets/public/client/manifest.json create mode 100644 assets/public/client/test.js diff --git a/assets/public/client/manifest.json b/assets/public/client/manifest.json new file mode 100644 index 00000000..e94f8554 --- /dev/null +++ b/assets/public/client/manifest.json @@ -0,0 +1,17 @@ +{ + "name": "RSCord", + "icons": [ + { + "src": "/assets/flacara.webp", + "sizes": "512x512" + } + ], + "start_url": "/app", + "display": "standalone", + "scope": "/", + "theme_color": "#05050a", + "categories":["social"], + "description": "ok", + "background_color": "#05050a", + "offline_enabled": true +} \ No newline at end of file diff --git a/assets/public/client/test.js b/assets/public/client/test.js new file mode 100644 index 00000000..42490509 --- /dev/null +++ b/assets/public/client/test.js @@ -0,0 +1,28 @@ +// (A) CREATE/INSTALL CACHE +self.addEventListener("install", evt => { + self.skipWaiting(); + evt.waitUntil( + caches.open("Demo") + .then(cache => cache.addAll([ + "index.html", + "manifest.json" + //"YOUR-STYLES.css", + //"YOUR-SCRIPTS.js", + //"YOUR-IMAGES.jpg" + ])) + .catch(err => console.error(err)) + ); +}); + +// (B) CLAIM CONTROL INSTANTLY +self.addEventListener("activate", evt => self.clients.claim()); + +// (C) LOAD FROM CACHE FIRST, FALLBACK TO NETWORK IF NOT FOUND +self.addEventListener("fetch", evt => evt.respondWith( + caches.match(evt.request).then(res => res || fetch(evt.request)) +)); + +/* (C) LOAD WITH NETWORK FIRST, FALLBACK TO CACHE IF OFFLINE +self.addEventListener("fetch", evt => evt.respondWith( + fetch(evt.request).catch(() => caches.match(evt.request)) +));*/ \ No newline at end of file