使用通知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>
预期成绩:
通知显示
实际结果:
没有错误,但也没有通知。
编辑:
通知有效如果我将通知设置为“允许”而不是“询问”。
你有清单吗?
"permissions": [
"contentSettings"
],
然后在你的脚本中......
chrome.contentSettings.notifications.set({primaryPattern:'<all_urls>',setting:'allow'});
对不起,您是服务器端还是客户端?