通知API未显示通知

问题描述 投票:1回答:1

使用通知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>

预期成绩:

通知显示

实际结果:

没有错误,但也没有通知。

编辑:

通知有效如果我将通知设置为“允许”而不是“询问”。

javascript html5 notifications
1个回答
0
投票

你有清单吗?

"permissions": [
          "contentSettings"
        ],

然后在你的脚本中......

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

对不起,您是服务器端还是客户端?

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

© www.soinside.com 2019 - 2024. All rights reserved.