我正在使用Notification.permission
检查浏览器是否允许通知。
我的代码用于检查通知权限,如下所示。
// Let's check if the browser supports notifications
if (!("Notification" in window)) {
alert("This browser does not support desktop notification");
}
var prm = Notification.permission;
if (prm == 'default' || prm == 'denied') {
console.log("permission denied or default");
}else{
console.log("permission granted");
}
此代码在我的localhost
中正常运行,但是当我尝试在生产中使用时,它总是会被拒绝状态。
我的浏览器通知设置始终允许在此网站上。
但我不知道问题是什么。
需要帮助。
答案 0 :(得分:3)
这很容易说:
[Deprecation]
Notification API可能不再用于不安全的来源。您应该考虑将应用程序切换到安全的来源,例如HTTPS
。有关详细信息,请参阅google's advice。
(匿名)@?message = unique-identifier = 123:25
?message = unique-identifier = 123:26被拒绝
你应该看起来像这样:
[linkExample1][2]
- 适用于index.html或[linkExampe2][2]
Here is the link 它无法在线工作 但您可以在本地服务器上运行只需创建任何html(htm)文件并运行它HTTPS
协议然后在您的网址中选择Allow
选项:
一个小的问题不要在本实验中使用私人(隐身模式) - 安全原因 不支持推送通知 私有或 隐身模式
let dnperm = document.getElementById('dnperm');
let dntrigger = document.getElementById('dntrigger');
dnperm.addEventListener('click', function(e){
e.preventDefault();
if(!window.Notification){
alert("Notification not supported!");
}else{
Notification.requestPermission().then(function(permission) {
console.log(permission);
if(permission === 'denied'){
alert('You Have Denied Notification!');
}else if(permission === 'granted'){
alert('You Have Granted notification.');
}
})
}
});
// simulate
dntrigger.addEventListener('click', function(e){
let notify;
e.preventDefault();
console.log(Notification.permission);
if(Notification.permission === 'default'){
alert('Please allow notification before doing this');
}else {
notify = new Notification('New Message From Romzik', {
body: 'How are you today? Is it really is a lovely day.',
icon: 'img/msg-icon.png',
tag: 'unique-identifier=123' // msg-id
});
notify.onclick = function (ev) {
console.log(this);
window.location = '?message=' + this.tag;
}
}
})

<body>
<a href="" id="dnperm">Request permission</a>
<a href="" id="dntrigger">Trigger</a>
</body>
&#13;