diff --git a/public/js/push.js b/public/js/push.js index 9092871..4fbab59 100644 --- a/public/js/push.js +++ b/public/js/push.js @@ -18,11 +18,17 @@ async function registerPush() { const registration = await navigator.serviceWorker.register('/sw.js'); console.log("SW registered:", registration); + // const subscription = await registration.pushManager.subscribe({ + // userVisibleOnly: true, + // applicationServerKey: vapidKey + // }); const subscription = await registration.pushManager.subscribe({ userVisibleOnly: true, - applicationServerKey: vapidKey + applicationServerKey: urlBase64ToUint8Array(vapidKey), }); + console.log('VAPID key:', vapidKey); + console.log("Subscription created:", subscription); const res = await fetch('/push/subscribe', { @@ -41,3 +47,19 @@ async function registerPush() { console.error("Push registration failed ❌", e); } } + +function urlBase64ToUint8Array(base64String) { + const padding = '='.repeat((4 - base64String.length % 4) % 4); + const base64 = (base64String + padding) + .replace(/-/g, '+') + .replace(/_/g, '/'); + + const rawData = window.atob(base64); + const outputArray = new Uint8Array(rawData.length); + + for (let i = 0; i < rawData.length; ++i) { + outputArray[i] = rawData.charCodeAt(i); + } + return outputArray; +} +