<script>
        window.onload = function () {
            suportNotify()
        }
    
        //判断浏览器是否支持Web Notifications API
        function suportNotify(){
            if (window.Notification) {
                // 支持
                console.log("支持"+"Web Notifications API");
                //如果支持Web Notifications API,再判断浏览器是否支持弹出实例
                showMess()
            } else {
                // 不支持
                alert("不支持 Web Notifications API");
            }
        }
    
        //判断浏览器是否支持弹出实例
        function showMess(){
            setTimeout(function () {
                console.log('1:'+Notification.permission);
                //如果支持window.Notification 并且 许可不是拒绝状态
                if(window.Notification && Notification.permission !== "denied") {
                    //Notification.requestPermission这是一个静态方法,作用就是让浏览器出现是否允许通知的提示
                    Notification.requestPermission(function(status) {
                        console.log('2: '+status);
                        //如果状态是同意
                        if (status === "granted") {
                                var m = new Notification('收到信息', {
                                    body: '这里是通知内容!你想看什么客官?',  //消息体内容
                                    icon:"images/img1.jpg",  //消息图片
                                    // requireInteraction: true,//打开后通知会一直显示,除非手动点击关闭

                                    // timestamp:'2022/1/13',//通知时间,默认是系统发出通知的时间,也可以通过setWhen()来设置
                                    // dir:'rtl',//默认值是auto, 可以是ltr或rtl
                                    // tag:'1111',//字符串。标记当前通知的标签
                                    // data:2222,//任意类型和通知相关联的数据。
                                    // vibrate:[200, 100, 200],//振动模式
                                    // renotify:true,//新通知出现的时候是否替换之前的
                                    // silent:true,//通知出现的时候,是否要有声音
                                });
                                setTimeout(m.close.bind(m), 15000);
                            // Notification.close()
                            m.onclick = function () {//点击当前消息提示框后,跳转到当前页面
                                window.focus();
                            }
                        } else{
                            alert('当前浏览器不支持弹出消息')
                        }
                    });
                }
            },1000)
        }
    </script>

在这里插入图片描述
注意:如果用的是Chrome浏览器的新版本,则必须是https协议,消息通知方可有效(当然如果是自己做测试,在本机用本地ip,则无所谓http还是https),chrome的旧版本则没有这一限制(具体到哪个版本为界限,就不清楚)

欢迎使用Markdown编辑器

  • 由于有修改通知显示时间需求。
关闭通知的实例方法:
var n = new Notification(theTitle,options);
 setTimeout(n.close.bind(n), 4000);
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐