H5 Notification桌面推送消息

本文介绍了H5中的Notification功能,重点讲解了OPTIONS参数在桌面推送消息中的作用,包括用户对通知显示的授权状态设置:默认、允许和拒绝。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//      websocket连接
var websocket = null;
//判断window当前浏览器是否支持WebSocket
if ('WebSocket' in window) {
    websocket = new WebSocket("服务器地址");
}
else {
    alert('当前浏览器 Not support websocket')
}

//连接发生错误时
websocket.onerror = function () {
    console.dir("发生错误");
};

//连接成功时方法
websocket.onopen = function () {
    console.dir("连接成功");
}

//接收到消息的回调方法
websocket.onmessage = function (event) {
    setMessageInnerHTML(event.data);
}

//连接关闭方法
websocket.onclose = function () {
    console.dir("连接关闭");
}

//监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。
window.onbeforeunload = function () {
    websocket.close();
}

   //将消息显示在网页上
    function setMessageInnerHTML(innerHTML) {
        Notification.requestPermission(function (permission) {
            if (permission == "granted") {
                var notification = new Notification("您有一条新的订单", {
                    dir: "auto",
                    lang: "zh-CN",
                    icon: 'http://127.0.0.1/manage/resources/img/xyyd_logo.jpg',
                    body: innerHTML,
                    silent: true,				//	通知出现的时候,是否要有声音
                    requireInteraction:true,         //  通知保持有效不自动关闭,默认为false
                    vibrate: [200, 100, 200],
                    timestamp: '1000',
                })
            }
        });
    }



var notification  = new Notification('您有一条新的订单',{
    body: '您有一条新的订单'}).setTimeout(function() {
    notification.close();}, 3000);

 

Notification.permission 用于表明当前通知显示的授权状态,它有三个值:

 default: 默认值,用户还未选择

 granted: 用户允许该网站发送通知

 denied: 用户拒绝该网站发送通知

 if (Notification.permission === 'granted') {
    console.log('同意授权过');
     // 随时可以显示通知
  } else if (Notification.permission === 'default') {
    console.log('还未选择同意/拒绝');
    // 下一步请求授权
  } else {
    console.log('拒绝授权 不能显示通知');
  }

OPTIONS参数

{
    //通知显示正文。非必须,默认为空
    body: '你的好友XX上线了!',
    //通知显示正文的图片地址。非必须,默认为空
    image: 'imgae url',
    //通知左侧图标。非必须,默认为空
    icon: 'imgae url',
    //通知的分类标记(ID)。非必须,默认为空
    tag: 'test',
    //通知相关联的数据,通常用于方法的回调,传参。非必须,默认为空
    data: '可以是任意数据类型',
    //通知显示延迟的时间。非必须,默认通知实例创建完成就显示
    timestamp: '',
    //通知主体内容的水平展示顺序,有点类似direction属性。非必须,默认值是auto, 可以是ltr或rtl
    dir: 'auto',
    //当没有足够的空间来显示通知本身时,用于表示通知的图像的URL。非必须,默认为空
    badge: 'xxx',
    //通知的语言。非必须默认为空
    lang: '',
    //通知显示时,设备的振动模式。非必须,默认为空
    vibrate: [200, 100, 200],
    //新通知出现是否覆盖旧的通知,覆盖(true)则永远只显示一条通知,不覆盖(false)则会多条通知重叠。非必须,默认为true
    renotify: true,
    //通知是否静音。非必须,默认为false,表示无声
    silent: false,
    //通知声源文件地址。非必须,默认为空
    sound: 'mp3',
    //是否不在屏幕上显示通知信息。非必须,默认为false表示要显示
    noscreen: false,
    //指定通知是否应该粘滞性,即不容易被用户清理。非必须,默认false表示不具粘滞性
    sticky: false,
    //指定通知是否保持活性,知道用户点击或关闭。非必须,默认为false
    requireInteraction: false
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值