From c3c94461c295ef4c6219051369472f983267437c Mon Sep 17 00:00:00 2001 From: retoor Date: Wed, 5 Mar 2025 17:19:24 +0100 Subject: [PATCH] Update service worker. --- src/snek/static/service-worker.js | 36 ++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/src/snek/static/service-worker.js b/src/snek/static/service-worker.js index dfdc493..5881455 100644 --- a/src/snek/static/service-worker.js +++ b/src/snek/static/service-worker.js @@ -1,3 +1,37 @@ +async function requestNotificationPermission() { + const permission = await Notification.requestPermission(); + return permission === 'granted'; +} + +// Subscribe to Push Notifications +async function subscribeUser() { + const registration = await navigator.serviceWorker.register('/service-worker.js'); + + const subscription = await registration.pushManager.subscribe({ + userVisibleOnly: true, + applicationServerKey: urlBase64ToUint8Array(PUBLIC_VAPID_KEY) + }); + + // Send subscription to your backend + await fetch('/subscribe', { + method: 'POST', + body: JSON.stringify(subscription), + headers: { + 'Content-Type': 'application/json' + } + }); +} + +// Service Worker (service-worker.js) +self.addEventListener('push', event => { + const data = event.data.json(); + self.registration.showNotification(data.title, { + body: data.message, + icon: data.icon + }); +}); + +/* self.addEventListener("install", (event) => { console.log("Service worker installed"); }); @@ -27,4 +61,4 @@ self.addEventListener("notificationclick", (event) => { event.notification.close(); event.waitUntil(clients.openWindow( "https://snek.molodetz.nl",)); -}); +});*/