浏览器消息通知案例

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>H5的Notification-Web的桌面通知功能</title>

    <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js" type='text/javascript'></script>

</head>

<body>

<div class="row">

    <div class="col-md-12">

        <button id="showNoti">点击通知</button>

    </div>

</div>

<script>

    var instanceNotification = Notification || window.Notification;

    console.log(instanceNotification);

    if (instanceNotification) {

        var permissionNow = instanceNotification.permission;

        if (permissionNow === 'granted') {//允许通知

            creatNotification();

        } else if (permissionNow === 'default') {

            setPermission();

        } else if (permissionNow === 'denied') {

            console.log('用户拒绝了你!!!');

        }  else {

            setPermission();

        }

    }

    function setPermission() {

        //请求获取通知权限

        instanceNotification.requestPermission(function (PERMISSION) {

            if (PERMISSION === 'granted') {

                console.log('用户允许通知了!!!');

                creatNotification();

            } else {

                console.log('用户拒绝了你!!!');

            }

        });

    }

    function creatNotification() {

        if (!window.Notification) {

            alert("浏览器不支持通知!");

            return false;

        }

        console.log(window.Notification.permission);

        if (window.Notification.permission != 'granted') {

            console.log('用户未开启通知权限!!!');

            return false;

        }

        var instanceNotification = new Notification("您有一条订单消息,请及时处理!", { "icon": "", "body": "快点击处理吧!","requireInteraction":true });

        instanceNotification.onshow = function () {

            console.log("显示通知");

            //3s后自动关闭通知

            setTimeout(function () {

                instanceNotification.close()

            }, 3*1000);

        };

        instanceNotification.onclick = function () {

            alert("打开页面");

            window.open("/note");

            instanceNotification.close();

        };

        instanceNotification.onclose = function () {

            console.log("通知关闭");

        };

        instanceNotification.onerror = function () {

            console.log('错误');

        };

    }

    $(function () {

        $("#showNoti").click(function () {

            creatNotification();

        })

    });

    //设置一个定时器,每隔5分钟进行一次通知

    setInterval("creatNotification()",5*60*1000);

</script>

</body>

</html>

需要在浏览器设置通知权限里面加上需要通知的网页地址步骤:设置->隐私设置和安全性->网站设置->通知,添加对应的网址

具体api配置,请查看notification - Web API 接口参考 | MDN

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值