问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

html5的notification怎样一直显示

发布网友 发布时间:2022-04-20 00:51

我来回答

2个回答

懂视网 时间:2022-04-20 05:13

前言

Notification API 是 HTML5 新增的桌面通知 API,用于向用户显示通知信息。该通知是脱离浏览器的,即使用户没有停留在当前标签页,甚至最小化了浏览器,该通知信息也一样会置顶显示出来。

用户权限

想要向用户显示通知消息,需要获取用户权限,而相同的域名只需要获取一次权限。只有用户允许的权限下,Notification 才能起到作用,避免某些网站的广告滥用 Notification 或其它给用户造成影响。那么如何知道用户到底是允不允许的?

Notification.permission 该属性用于表明当前通知显示的授权状态,可能的值包括:

  • default :不知道用户的选择,默认。

  • granted :用户允许。

  • denied :用户拒绝。


  • if(Notification.permission === 'granted'){
     console.log('用户允许通知');}else if(Notification.permission === 'denied'){
     console.log('用户拒绝通知');}else{
     console.log('用户还没选择,去向用户申请权限吧');}

    请求权限

    当用户还没选择的时候,我们需要向用户去请求权限。Notification 对象提供了 requestPermission() 方法请求用户当前来源的权限以显示通知。

    以前基于回调的语法已经弃用(当然在现在的浏览器中还是能用的),最新的规范已将此方法更新为基于 promise 的语法:


    Notification.requestPermission().then(function(permission) {
     if(permission === 'granted'){
     console.log('用户允许通知');
     }else if(permission === 'denied'){
     console.log('用户拒绝通知');
     }});

    推送通知

    获取用户授权之后,就可以推送通知了。


    var notification = new Notification(title, options)

    参数如下:

  • title:通知的标题

  • options:通知的设置选项(可选)。

  • body:通知的内容。

  • tag:代表通知的一个识别标签,相同tag时只会打开同一个通知窗口。

  • icon:要在通知中显示的图标的URL。

  • image:要在通知中显示的图像的URL。

  • data:想要和通知关联的任务类型的数据。

  • requireInteraction:通知保持有效不自动关闭,默认为false。

  • 还有一些其他的参数,因为用不了或者没什么用这里就没必要说了。


    var n = new Notification('状态更新提醒',{
     body: '你的朋友圈有3条新状态,快去查看吧',
     tag: 'linxin',
     icon: 'http://blog.gdfengshuo.com/images/avatar.jpg',
     requireInteraction: true})

    通知消息的效果图如下:

    image

    关闭通知

    从上面的参数可以看出,并没有一个参数用来配置显示时长的。我想要它 3s 后自动关闭的话,这时可以调用 close() 方法来关闭通知。


    var n = new Notification('状态更新提醒',{
     body: '你的朋友圈有3条新状态,快去查看吧'})setTimeout(function() {
     n.close();}, 3000);

    事件

    Notification 接口的 onclick属性指定一个事件侦听器来接收 click 事件。当点击通知窗口时会触发相应事件,比如打开一个网址,引导用户回到自己的网站去。


    var n = new Notification('状态更新提醒',{
     body: '你的朋友圈有3条新状态,快去查看吧',
     data: {
     url: 'http://blog.gdfengshuo.com'
     }})n.onclick = function(){
     window.open(n.data.url, '_blank'); // 打开网址
     n.close();    // 并且关闭通知}

    应用场景

    前面说那么多,其实就是为了用。那么到底哪些地方可以用到呢?

    现在网站的消息提醒,大多数都是在消息中心显示个消息数量,然后发邮件告诉用户,这流程完全没有错。不过像我这种用户,觉得别人点个赞,收藏一下都要发个邮件提醒我,老是要去删邮件(强迫症),我是觉得挺烦的甚至关闭了邮件提醒。

    当然这里并不是说要用 Notification,毕竟它和邮件的功能完全不一样。

    我觉得比较适合的是新闻网站。用户浏览新闻时,可以推送给用户实时新闻。以腾讯体育为例,它就使用了 Notification API。在页面中引入了一个 notification2017_v0118.js,有兴趣可以看看别人是怎么成熟的使用的。

    一进入页面,就获取授权,同时自己页面有个浮动框提示你允许授权。如果允许之后,就开始给你推送通知了。不过它在关闭标签卡的时候,通知也会被关闭,那是因为监听了页面 beforeunload 事件。


    function addOnBeforeUnload(e) {
     FERD_NavNotice.notification.close();}if(window.attachEvent){
     window.attachEvent('onbeforeunload', addOnBeforeUnload);} else {
     window.addEventListener('beforeunload', addOnBeforeUnload, false);}

    热心网友 时间:2022-04-20 02:21

    1.我在html的script里写了一个notification的通知,但是它过一段时间自动会消失,有什么办法让它一直显示?比如说持续10个小时后再消失,或者点击后才消失?2.代码如下:
    var option={
    body: 'test',
    tag: ++i};
    var notification = new Notification('编码系统:',option );
    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    镇海立人中学好吗 镇海立人中学升学率 自考学位申请在什么时候 电子科大自考本科申请学士学位要多久 浙江自考毕业两年后还能考学士学位吗 自考学士学位申请超过时限怎么办 自考本科毕业后多久能申请学士学位 自考本科毕业后多久能申请学位 自考要在几年内考完才能申请学位证 春天可以种白菜吗 春天能不能种白菜 web 浏览器桌面通知NOTIFICATION html5 notification功能还能用吗 网恋可以相信哦吗? 基金如何网上买卖 天天基金网上今天基金交易总告知网络不给力为什么?15点之后就可以了,为什么?是系统太忙?还是? 买的基金App显示网络维护停止服务是怎么回事。 白酒该怎么正确的喝呢? 求云南旅游攻略.旅游达人来.不要复制的.谢谢 html文本域能添加JS动作吗,就是当用户写完文本域后,将文本域的内容提交到一个txt文档中 借款条怎么打 怎样把文件上传至您的域名指向的Web服务器(或虚拟主机)的根目录? HTML5的文件读取对象FileReader如何将不同编码格式的本地文件转换为统一编码? 我有个服务器问题:我要把我的一个html文件绑定到我的服务器域名上让别人能够通过域名就可以打开项目? html文件做好了,只能在本地访问。怎么放到服务器上?已经有阿里云ubuntu服务器和域名。 连锁奶茶店名(Logo)征集…要求:思路独特,易记,有含义,主题性强,朗朗上口, OKEX交易所的现货交易是啥? OKEX交易所中的现货交易是什么? 现货交易所是干吗的呢? 什么是现货交易?目前的现货交易所有哪些? OKEX交易所的现货交易是什么意思? 火狐和谷歌浏览器中的alert问题 JAVAscript 最美的薰衣草花海在哪里? 花海图片加花海简介,可以是薰衣草的 也可以是太阳花的 要好看的 我还要花到本子上的 荔波薰衣草花海几月开 2018荔波薰衣草门票+花期+交通 世界上最美十大花海 浪漫普罗旺斯,醉人薰衣草花海真的那么神奇吗 求助贴,关于在游戏中打字时看不到要选择的 求一部青梅竹马小说,女主一出生地位就非常高,所有人的小公主。男主很宠女主 求一部日本漫画的名字,里面讲述的是青梅竹马的故事 有没有小时候就是青梅竹马的言情小说 求一部穿越小说,男主角姓萧,后面还有个字是什么忘了。女主角是个公主 小说 古代重生复仇故事 公主被驸马背叛 弟弟以前被陷害掉下树傻了之后又瞎了 有一个姓白的青梅竹马一 firefox如何实现桌面通知 firefox下如何配置桌面通知的显示时间? melrose迷你手机s9画面怎么样? melrose迷你手机s9怎么USB连接找不到是哪个盘 牟平有卖melroseS9的吗 欧诗漫和膜法世家面膜哪个好用? 哪位大神帮忙,我想开个女装店铺,一直在纠结店铺名字问题上。 想以 杰和岩这两字组合 毛衣针织衫购买新版在哪比较好?寻求服装设计工作室来合作,最好是有毛衣设计的优先。