Skip to content

Commit 9e81bb8

Browse files
author
Oskar Karlsson
committed
✨ Generate subscription information
1 parent a69c801 commit 9e81bb8

File tree

1 file changed

+20
-8
lines changed

1 file changed

+20
-8
lines changed

vanilla/index.js

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ function loading() {
143143
// SW
144144

145145
const apiCacheName = 'api-cache-v1';
146+
const applicationServerKey = urlB64ToUint8Array('BLKDIREFdJjk63LMAhjpwoBWPASDs1zQdKt5ovo-RFbiL839I4DoqM-pyk0WkBNKAGwyTfAc-QMBqsPjkWZWKMI');
146147

147148
async function fromCache(request, cacheName) {
148149
const cache = await caches.open(cacheName);
@@ -163,14 +164,25 @@ async function messageHandler({ type, url }) {
163164
}
164165
}
165166

167+
navigator.serviceWorker.addEventListener('message', event => messageHandler(JSON.parse(event.data)));
168+
169+
function urlB64ToUint8Array(base64String) {
170+
const padding = '='.repeat((4 - base64String.length % 4) % 4);
171+
const base64 = (base64String + padding).replace(/\-/g, '+').replace(/_/g, '/');
172+
const rawData = window.atob(base64);
173+
const outputArray = new Uint8Array(rawData.length);
174+
175+
for (let i = 0; i < rawData.length; ++i) {
176+
outputArray[i] = rawData.charCodeAt(i);
177+
}
178+
return outputArray;
166179
}
167180

168-
if ('serviceWorker' in window.navigator) {
169-
const registration = registerServiceWorker('/sw.js');
170-
registration.then(worker => {
171-
navigator.serviceWorker.addEventListener('message', event => {
172-
console.log(event);
173-
messageHandler(JSON.parse(event.data));
174-
});
175-
});
181+
async function getPushSubscription() {
182+
const registration = await window.navigator.serviceWorker.ready;
183+
let subscription = await registration.pushManager.getSubscription();
184+
if (!subscription) {
185+
subscription = await registration.pushManager.subscribe({ userVisibleOnly: true, applicationServerKey });
186+
}
187+
console.dir(JSON.stringify(subscription));
176188
}

0 commit comments

Comments
 (0)