/// /// /// var sw = /** @type {ServiceWorkerGlobalScope & typeof self} */ (self) sw.addEventListener('install', function() { sw.skipWaiting() }) sw.addEventListener('activate', function() { sw.clients.claim() }) sw.addEventListener('push', function(evt) { if (evt.data) { const data = evt.data.json() console.log('Push', data) if (data.body) { sw.registration.showNotification(data.title, { body: data.body, icon: data.custom.message.user.avatar, tag: data.tag, data: data.custom.message }) } } }) sw.addEventListener('notificationclick', function(evt) { evt.waitUntil( sw.clients.matchAll().then(function(clientList) { const message = evt.notification.data const url = message.mid ? message.rid ? `https://juick.com/m/${message.mid}#${message.rid}` : `https://juick.com/m/${message.mid}` : 'https://juick.com/pm/inbox' if (clientList.length > 0) { for (var i = 0; i < clientList.length; i++) { if (clientList[i].url === url) { return clientList[i].focus() } } clientList[0].navigate(url) return clientList[0].focus() } return sw.clients.openWindow(url) }) ) })