(wip) PWA Push Notifications
This commit is contained in:
@ -1,61 +0,0 @@
|
||||
'use strict'
|
||||
|
||||
console.log('Service Worker worker/index.js Loaded...')
|
||||
workbox.precaching.precacheAndRoute(self.__WB_MANIFEST);
|
||||
|
||||
self.addEventListener('fetch', (event) => {
|
||||
try {
|
||||
console.log('Fetch event for ', event.request.url);
|
||||
if (event.request.url.includes('/api/auth/callback/')) {
|
||||
// Use network only strategy for auth routes, or bypass SW completely
|
||||
event.respondWith(fetch(event.request));
|
||||
return;
|
||||
}
|
||||
// other caching strategies...
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
}
|
||||
});
|
||||
|
||||
self.addEventListener('push', function (event) {
|
||||
console.log('Push message', event)
|
||||
if (!(self.Notification && self.Notification.permission === 'granted')) {
|
||||
return
|
||||
}
|
||||
const data = JSON.parse(event.data.text())
|
||||
event.waitUntil(
|
||||
registration.showNotification(data.title, {
|
||||
body: data.message,
|
||||
icon: '/icons/android-chrome-192x192.png'
|
||||
})
|
||||
)
|
||||
})
|
||||
|
||||
self.addEventListener('notificationclick', function (event) {
|
||||
console.log('Notification click: tag', event.notification.tag)
|
||||
event.notification.close()
|
||||
event.waitUntil(
|
||||
clients.matchAll({ type: 'window', includeUncontrolled: true }).then(function (clientList) {
|
||||
if (clientList.length > 0) {
|
||||
let client = clientList[0]
|
||||
for (let i = 0; i < clientList.length; i++) {
|
||||
if (clientList[i].focused) {
|
||||
client = clientList[i]
|
||||
}
|
||||
}
|
||||
return client.focus()
|
||||
}
|
||||
return clients.openWindow('/')
|
||||
})
|
||||
)
|
||||
})
|
||||
|
||||
// self.addEventListener('pushsubscriptionchange', function(event) {
|
||||
// event.waitUntil(
|
||||
// Promise.all([
|
||||
// Promise.resolve(event.oldSubscription ? deleteSubscription(event.oldSubscription) : true),
|
||||
// Promise.resolve(event.newSubscription ? event.newSubscription : subscribePush(registration))
|
||||
// .then(function(sub) { return saveSubscription(sub) })
|
||||
// ])
|
||||
// )
|
||||
// })
|
Reference in New Issue
Block a user