self.addEventListener('push', function(event) {
var title = event.data ? event.data.text() : 'Yay a message.';
var body = 'We have received a push message.';
var icon = '/images/icon.png';
var tag = 'simple-push-demo-notification-tag';
event.waitUntil(
self.registration.showNotification(title, {
body: body,
icon: icon,
tag: tag
})
);
});
self.addEventListener('pushsubscriptionchange', function() {
// Обновить подписку на сервере.
});
if ('showNotification' in ServiceWorkerRegistration.prototype && 'PushManager' in window) {
navigator.serviceWorker.ready.then(function(serviceWorkerRegistration) {
vapidPublicKey = ...;
serviceWorkerRegistration.pushManager.subscribe({userVisibleOnly: true, applicationServerKey: vapidPublicKey})
.then(function(subscription) {
// Отправить подписку на сервер, который вызовет /v2/subscribe/webpush
})
.catch(function(e) {
if (Notification.permission === 'denied') {
// Пользователь запретил уведомления.
} else {
// Произошла ошибка.
}
});
});
} else {
// Не поддерживается.
}