Notification.requestPermission не определено в исполняемом файле ServiceWorker. Хром - PullRequest
0 голосов
/ 04 января 2019

Я столкнулся с проблемой, когда Notification.requestPermission не запускается из моего обработчика ServiceWorker.

Интересно, что если попытаться использовать Notification.requestPermission из консоли браузера, он работает нормально, и я вижу запрос уведомления в верхней части окна браузера Chrome.

by: Notification.requestPermission().then(res => console.log(res)).Но то же самое выдает мне ошибку во время выполнения из ServiceWorker файла, например:

Uncaught TypeError: self.Notification.requestPermission не является функцией

Итак, любойможет знать что не так?Я уже видел эти сообщения на SoW:

  1. Запрос уведомлений Webkit Функция приема не работает

  2. Уведомления на рабочем столе, позволяющие не работать с 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}`)
    }
  })
...