You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.2 KiB
41 lines
1.2 KiB
'use strict';
|
|
|
|
self.addEventListener('push', function(event) {
|
|
console.log('Received a push message', event);
|
|
|
|
let title = 'Yay a message.';
|
|
let body = 'We have received a push message.';
|
|
let icon = '/images/icon-192x192.png';
|
|
let tag = 'simple-push-demo-notification-tag';
|
|
|
|
event.waitUntil(
|
|
self.registration.showNotification(title, {
|
|
body: body,
|
|
icon: icon,
|
|
tag: tag
|
|
})
|
|
);
|
|
});
|
|
|
|
self.addEventListener('notificationclick', function(event) {
|
|
console.log('On notification click: ', event.notification.tag);
|
|
// Android doesn’t close the notification when you click on it
|
|
// See: http://crbug.com/463146
|
|
event.notification.close();
|
|
|
|
// This looks to see if the current is already open and
|
|
// focuses if it is
|
|
event.waitUntil(clients.matchAll({
|
|
type: 'window'
|
|
}).then(function(clientList) {
|
|
for (var i = 0; i < clientList.length; i++) {
|
|
var client = clientList[i];
|
|
if (client.url === '/' && 'focus' in client) {
|
|
return client.focus();
|
|
}
|
|
}
|
|
if (clients.openWindow) {
|
|
return clients.openWindow('/');
|
|
}
|
|
}));
|
|
});
|