'showNotification' из неопределенного для push-уведомлений

Я пытаюсь отправить уведомления моего веб-сайта из браузера на Android и ПК, для этого я попробовал push-уведомления .

Я следовал документации и поставил следующий код -

Notification.requestPermission(function(status) {
    console.log('Notification permission status:', status);
});

function displayNotification() {
  if (Notification.permission == 'granted') {
    navigator.serviceWorker.getRegistration().then(function(reg) {
      console.log("Reg -"+reg);
      reg.showNotification('Hello world!');
    });
  }
  else{
    console.log(Notification.permission);
  }
}

Разрешение - granted, но я получаю ошибку с reg, потому что он получает undefined.

вот скриншот моей консоли -

enter image description here

0
задан Pankaj Sharma 26 June 2019 в 10:39
поделиться

1 ответ

См. Вкладку «Приложение» -> «Сервисные работники» на панели отладки Chrome. Я думаю, что вы не подключили сервисного работника в своем приложении. Для логики уведомлений вам нужно создать любого работника сервиса и включить его.

Например, добавьте следующий код в ваш корневой js-файл:

if ('serviceWorker' in navigator) {
    navigator.serviceWorker.register('sw.js');
}

и создайте файл sw.js следующего содержания:

self.addEventListener('install', (event) => {
    console.log('Installed');
});

self.addEventListener('activate', (event) => {
    console.log('Activated');
});

self.addEventListener('fetch', (event) => {
    console.log('Fetch request');
});

P.S. И ваш console.log("Reg -"+reg); перед reg init, так что это undefined:)

1
ответ дан Danil Valov 26 June 2019 в 10:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: