分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

Notification web 桌面消息推送

发布时间:2023-09-06 02:23责任编辑:熊小新关键词:暂无标签

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 桌面消息推送

原文地址:https://www.cnblogs.com/lovemj/p/9989196.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved