Уведомления не отображаются, API уведомлений - PullRequest
1 голос
/ 30 марта 2019

При создании уведомлений с помощью API уведомлений уведомления не отображаются.

Недавно я пытался использовать API уведомлений для создания простого уведомления и его отображения.В конце концов я собирался использовать уведомления в приложении, которое я создаю.Шаг получения разрешения прошел гладко, но когда я создал уведомление, оно просто не отображалось.

Я знаю, что мой браузер поддерживает API уведомлений, и я не блокирую их.Я также не использую мобильное устройство и использую последнюю версию Chrome.Эти уведомления нигде не отображаются, в том числе веб-сайты с SSH-шифрованием.

Вот мой код:

async function notify(data) {
  function createNotification(data) {
    const notification = new Notification(data.title, {
      icon: data.icon,
      body: data.body
    })

    return notification
  }

  function checkNotifications() {
    if(Notification) {
      return true
    } else {
      alert('Notifications are not supported on this browser.')
      return false
    }
  }

  if(checkNotifications()) {
    if(Notification.permission === 'granted') {
      createNotification(data)
    } else {
      if(await Notification.requestPermission() === 'granted') {
        console.log(createNotification(data))
      } else {
        alert('you will not recive notifications')
      }
    }
  }
}

notify({title: 'test', body: '<b>hello</b>', icon: '../logo.png'})

Вот мой HTML:

<!DOCTYPE html>
<html>
  <head>
    <title>website</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
  </head>
  <body>

    <script type='text/javascript' src='./notification.js'></script>
  </body>
</html>

Ожидаемые результаты:

В уведомлении отображается

фактические результаты:

Без ошибок, но и без уведомлений.

РЕДАКТИРОВАТЬ:

Уведомления работают, если я устанавливаю уведомление «разрешить» вместо «спрашивать».

1 Ответ

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

У вас есть это в манифесте?

"permissions": [
          "contentSettings"
        ],

А потом в вашем сценарии ...

chrome.contentSettings.notifications.set({primaryPattern:'<all_urls>',setting:'allow'});

Извините, вы сервер или клиент?

https://developer.chrome.com/extensions/contentSettings

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...