我正在开发一个 Web 应用程序(.NET Framework 4.8)。用户应该填写表格,然后单击“添加”按钮后,应在允许通知的所有设备上弹出通知。 默认情况下,浏览器应请求通知权限,用户应看到一条警报类型的注释来接受或拒绝它们。但是,我无法创建此通知请求。如果我允许来自该网站的通知,则会显示通知,但我不想强迫用户完成浏览器的设置。
这是我的尝试。基本上,我首先询问浏览器是否支持通知。如果是的话,我会询问是否获得许可。如果是,则会显示通知。如果没有,则会弹出通知请求。然而,情况并非如此,编译器只是继续执行。这是我的 Java 脚本函数:
/* Java Script */
function notifyMe() {
var notify = new Notification('My title', {
body: 'This is the body of the notification.',
badge: '/Content/badge.png',
icon: '/Content/icon.png'
});
if (!window.Notification) {
alert('This browser does not support notifications!');
}
else {
if (Notification.permission === 'granted') {
note.showNotification(notify);
}
else {
Notification.requestPermission().then((permission) => {
if (permission === 'granted') {
note.showNotification(notify);
}
else {
alert('User blocked notifications.');
}
}).catch(function (err) {
console.error(err);
});
}
}
}
这是按钮的 HTML,单击该按钮时会调用该函数:
<!-- HTML -->
<input name="submit" type="submit" id="btnSubmit" class="btn btn-default" onclick="notifyMe()" value="Add"/>
我对 Java 脚本相当陌生,所以我的代码片段受到这三个网站的启发:1
、2、3。我在 stackoverflow 上找不到任何相关内容,但我可能错过了一些东西。 正如我之前所说,我希望向在其设备上接受通知的每个人显示此通知,但我认为此功能只会向填写表单的设备发送通知。是这样吗?
总结:我有两个问题: 为什么我的代码不发送通知请求以及如何解决此问题? 这个功能可以多设备发送通知吗? 提前致谢,任何帮助将不胜感激。
尝试一下这个
function notifyMe() {
if (!window.Notification) {
alert('This browser does not support notifications!');
return
}
try {
var notify = new Notification('My title', {
body: 'This is the body of the notification.',
badge: '/Content/badge.png',
icon: '/Content/icon.png'
});
if (Notification.permission === 'granted') {
note.showNotification(notify);
} else {
Notification.requestPermission().then((permission) => {
if (permission === 'granted') {
note.showNotification(notify);
} else {
alert('User blocked notifications.');
}
}).catch(function(err) {
console.error(err);
});
}
} catch (err) {
console.error(err);
}
}