问题描述
我正在尝试创建一个聊天室并启动并运行所有内容,但在桌面通知方面遇到了问题。每当我请求通知权限并将访问权限设置为“授予”时,权限将重置为“默认”,不允许显示通知。有没有办法获得保持设置为“授予”的权限,或者我是否必须让他们在每次发送新消息时继续允许通知?将其作为本地文件运行(在 ChromeOS 上)是否涉及保护?以下是通知部分的代码:
function showNotification() {
var title = "New Message!";
var messageValueNotif = document.querySelectorAll(".message");
if (messageValueNotif.length !== 0) {
messageValueNotif = messageValueNotif[messageValueNotif.length - 1].innerHTML;
} else {
return false;
}
var currentFavicon = document.querySelector('link').href;
var notif = new Notification(title,{
body: messageValueNotif,icon: currentFavicon
});
notif.onclick = () => {
notif.close();
window.parent.focus();
}
}
function requestAndShowPermission() {
if (Notification.permission === 'granted') {
showNotification();
} else if (Notification.permission !== 'denied') {
Notification.requestPermission().then(function(permission) {
showNotification()
});
}
}
window.onload = requestAndShowPermission();
解决方法
这显然是 ChromeOS 的文件保护。