Я столкнулся с проблемой, когда Notification.requestPermission
не запускается из моего обработчика ServiceWorker
.
Интересно, что если попытаться использовать Notification.requestPermission
из консоли браузера, он работает нормально, и я вижу запрос уведомления в верхней части окна браузера Chrome.
by: Notification.requestPermission().then(res => console.log(res))
.Но то же самое выдает мне ошибку во время выполнения из ServiceWorker
файла, например:
Uncaught TypeError: self.Notification.requestPermission не является функцией
Итак, любойможет знать что не так?Я уже видел эти сообщения на SoW:
Запрос уведомлений Webkit Функция приема не работает
Уведомления на рабочем столе, позволяющие не работать с Chrome
Но они не решают мою проблему ...
Мой SW push
часть кода, где я использую уведомления:
self.addEventListener('push', function(event) {
console.log(self.Notification, Notification.requestPermission)
self.Notification.requestPermission().then(res => console.log(res))
if (Notification.permission === 'denied') {
console.log('Permission wasn\'t granted. Allow a retry.');
return;
}
if (Notification.permission === 'default') {
console.log('The permission request was dismissed.');
return;
}
console.log('The permission request is granted!');
try {
event.waitUntil(
self.registration.showNotification(event && event.data && event.data.text() || 'Some Notification Here!')
);
} catch (e) {
throw new Error(`Error in SW: ${e}`)
}
})