How to add web push notificationsFri Oct 20 2023
Resources
To debug service workers in Chrome, go to chrome://inspect/#service-workers and click inspect
on the service worker you want to debug.
This is the MDN documentation for showNotification https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerRegistration/showNotification
service-worker.js
const activatePushEvent = () => {
self.addEventListener('push', (event) => {
const data = event.data.json()
const body = data.body
const icon = data.icon
const url = data.data.url
event.waitUntil(
self.registration.pushManager
.permissionState({ userVisibleOnly: true })
.then((permissionState) => {
if (permissionState === 'granted') {
return self.registration.showNotification(body, {
icon: icon,
data: {
url: url
}
})
} else if (permissionState === 'prompt') {
self.registration.pushManager.subscribe({
userVisibleOnly: true,
applicationServerKey: yourApplicationServerKey,
})
}
}),
)
})
self.addEventListener('notificationclick', (event) => {
const url = event.notification.data.url
event.waitUntil(clients.openWindow(url));
})
}
activatePushEvent()