Показать push-сообщение в Chrome - PullRequest
0 голосов
/ 04 марта 2019

Я хочу показать push-уведомление с помощью сервисного работника.В инструментах разработчика -> Приложение -> Работники сферы обслуживания у меня есть тестовый текст "a": "test message", я нажимаю кнопку и получаю следующую ошибку:

serviceWorker.js:48 Uncaught (in promise) TypeError: Failed to execute 
'showNotification' on 'ServiceWorkerRegistration': No notification 
permission has been granted for this origin. 

Как я могу это исправить?Когда вы нажимаете на кнопку, должно ли появиться уведомление?

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

Это работа.Вам также необходимо проверить, есть ли у вашего браузера разрешение.

 self.addEventListener('push', (event) => {
    const options = {
        body: 'This notification was generated from a push!',
        icon: '',
        data: {
            dateOfArrival: Date.now(),
            primaryKey: '2'
        },
        actions: [
            {
                action: 'explore', title: 'Explore this new world',
                icon: ''
            },
            {
                action: 'close', title: 'Close',
                icon: ''
            },
        ]
    };
    event.waitUntil(
        self.registration.showNotification('Title', options)
    )
    });
0 голосов
/ 04 марта 2019

Для push-сообщений вам нужно две настройки API API уведомлений и Push API .Перво-наперво, спросите разрешение клиента на уведомление.Если это не предоставлено, ничто не работает.Итак, в вашем index.js / App.js поместите этот фрагмент: -

function askForNPerm() {
  Notification.requestPermission(function(result) {
    console.log("User choice", result);
    if (result !== "granted") {
      console.log("No notification permission granted!");
    } else {
      configurePushSub();// Write your custom function that pushes your message
    }
  });
}

Как только вы получите разрешение, затем вызовите функцию Push, у которой есть сообщение для отображения.

...