Notification web 桌面消息推送

Posted lovemj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Notification web 桌面消息推送相关的知识,希望对你有一定的参考价值。

var NotificationHandler = {
isNotificationSupported: ‘Notification‘ in window,
isPermissionGranted: function () {
return Notification.permission === ‘granted‘;
},
requestPermission: function () {
if (!this.isNotificationSupported) {
console.log(‘当前浏览器不支持Notification API‘);
return;
}
Notification.requestPermission(function (status) {
var permission = Notification.permission;
});
},
showNotification: function (Title, ImgUrl, Content, Tag) {
if (!this.isNotificationSupported) {
console.log(‘当前浏览器不支持Notification API‘);
return;
}
if (!this.isPermissionGranted()) {
Notification.requestPermission(function (permission) {
// 如果用户同意,就可以向他们发送通知
if (permission === "granted") {
var n = new Notification(Title, {
icon: ImgUrl,
body: Content,
tag: Tag,
requireInteraction: true
});
n.onshow = function () {
};
//消息框被点击时被调用
//可以打开相关的视图,同时关闭该消息框等操作
n.onclick = function () {
alert(1);
//n.close();
};

//当有错误发生时会onerror函数会被调用
//如果没有granted授权,创建Notification对象实例时,也会执行onerror函数
n.onerror = function () {
//do something useful
};

//一个消息框关闭时onclose函数会被调用
n.onclose = function () {
stopSound();
UpdateIsRead(n.tag);
};
}
});

} else {
var n = new Notification(Title, {
icon: ImgUrl,
body: Content,
tag: Tag,
requireInteraction:true//设置为true 那么关闭就只有是用户来关闭  这样就可以保证是用户操作 (缺点  必须要用户去操作一次)
});
n.onshow = function () {
};
//消息框被点击时被调用
//可以打开相关的视图,同时关闭该消息框等操作
n.onclick = function () {
//alert(1);
//n.close();
};

//当有错误发生时会onerror函数会被调用
//如果没有granted授权,创建Notification对象实例时,也会执行onerror函数
n.onerror = function () {
//do something useful
};

//一个消息框关闭时onclose函数会被调用
n.onclose = function () {
stopSound();
UpdateIsRead(n.tag);
};
}

}
};







































































以上是关于Notification web 桌面消息推送的主要内容,如果未能解决你的问题,请参考以下文章

PWA之消息推送——Notification

一个简单的网页通知(Web Notifications API)实例

一个简单的网页通知(Web Notifications API)实例

Web Notification 可以像推送通知服务一样工作吗?

Flutter—手机消息推送(notification)

IOS Web 浏览器上的 Firebase 消息传递