29 lines
938 B
JavaScript
29 lines
938 B
JavaScript
|
|
self.addEventListener('message', event => {
|
|
if (event.data.type === 'SHOW_NOTIFICATION') {
|
|
event.waitUntil(
|
|
self.registration.showNotification(event.data.title, event.data.options)
|
|
.catch(error => {
|
|
})
|
|
);
|
|
}
|
|
if (event.data.type === 'CLOSE_NOTIFICATION') {
|
|
event.waitUntil(
|
|
self.registration.getNotifications({ tag: event.data.tag })
|
|
.then(notifications => {
|
|
notifications.forEach(notification => notification.close());
|
|
})
|
|
.catch(error => {
|
|
})
|
|
);
|
|
}
|
|
});
|
|
|
|
self.addEventListener('notificationclick', event => {
|
|
event.notification.close();
|
|
if (event.notification.data && event.notification.data.url) {
|
|
const windowName='wirechat-conversation';
|
|
event.waitUntil(clients.openWindow(event.notification.data.url,windowName));
|
|
}
|
|
});
|