iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >HTML5中如何实现Web Notification桌面通知功能
  • 238
分享到

HTML5中如何实现Web Notification桌面通知功能

2023-06-09 12:06:25 238人浏览 泡泡鱼
摘要

这篇文章主要介绍了HTML5中如何实现WEB Notification桌面通知功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。有的时候我们会在桌面右下角看到这样的提示:这种

这篇文章主要介绍了HTML5中如何实现WEB Notification桌面通知功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

有的时候我们会在桌面右下角看到这样的提示:

HTML5中如何实现Web Notification桌面通知功能

这种桌面提示是html5新增的 Web Push Notifications 技术。

Web Notifications 技术使页面可以发出通知,通知将被显示在页面之外的系统层面上。能够为用户提供更好的体验,即使用户忙于其他工作时也可以收到来自页面的消息通知,例如一个新邮件的提醒,或者一个在线聊天室收到的消息提醒等等。

PS:除了IE外,各大现代浏览器都对这个桌面推送有了基本的支持。

开始

要创建一个消息通知,非常简单,直接使用 window 对象下面的 Notification 类即可,代码如下:

var n = new Notification("桌面推送", {    icon: 'img/icon.png',    body: '这是我的第一条桌面通知。',    image:'img/1.jpg'});

于是你就会看到系统桌面弹出我上面那张截图的通知。

PS:消息通知只有通过 Web服务访问 该页面时才会生效,如果直接双击打开本地文件,是没有任何效果的。也就是说你的文件需要使用服务器的形式打开,而不是直接使用浏览器打开本地文件。

当然也有可能你什么都没看到,别着急继续往下看。

基本语法

当然在想要弹出上面通知之前,有必要了解一下一个通知的基本语法:

let myNotification = new Notification(title, options);

title :定义一个通知的标题,当它被触发时,它将显示在通知窗口的顶部。

options (可选)对象包含应用于通知的任何自定义设置选项。

常用的选项有:

body: 通知的正文,将显示在标题下方。

tag: 类似每个通知的ID,以便在必要的时候对通知进行刷新、替换或移除。

icon: 显示通知的图标

image: 在通知正文中显示的图像的URL。

data: 您想要与通知相关联的任意数据。这可以是任何数据类型。

renotify: 一个 Boolean 指定在新通知替换旧通知后是否应通知用户。默认值为false,这意味着它们不会被通知。

requireInteraction: 表示通知应保持有效,直到用户点击或关闭它,而不是自动关闭。默认值为false。

当这段代码执行时,浏览器会询问用户,是否允许该站点显示消息通知,如下图所示:

HTML5中如何实现Web Notification桌面通知功能

只有用户点击了 允许 ,授权了通知,通知才会被显示出来。

授权

如何获取到用户点击的是“允许”还是“阻止”呢?

window的 Notification实例有一个 requestPermission 函数用来获取用户的授权状态:

// 首先,我们检查是否具有权限显示通知  // 如果没有,我们就申请权限  if (window.Notification && Notification.permission !== "granted") {      Notification.requestPermission(function (status) {      //status是授权状态。      //如果用户点击的允许,则status为'granted'      // 如果用户点击的禁止,则status为'denied'           // 这将使我们能在 Chrome/Safari 中使用 Notification.permission      if (Notification.permission !== status) {        Notification.permission = status;      }    });  }

注意:如果用户点击了授权右上角的关闭按钮,则status的值为default。

之后,我们只需要判断 status 的值是否为 granted ,来决定是否显示通知。

通知事件

但是单纯的显示一个消息框是没有任何吸引力的,所以消息通知应该具有一定的交互性,在显示消息的前前后后都应该有事件的参与。

Notification一开始就制定好了一系列事件函数,开发者可以很方面的使用这些函数处理用户交互:

有: onshow , onclick , onerror , onclose 。

var n = new Notification("桌面推送", {    icon: 'img/icon.png',    body: '这是我的第一条桌面通知。'});//onshow函数在消息框显示时触发//可以做一些数据记录及定时关闭消息框等n.onshow = function() {    console.log('显示消息框');    //5秒后关闭消息框    setTimeout(function() {        n.close();    }, 3000);};//消息框被点击时被调用//可以打开相关的视图,同时关闭该消息框等操作n.onclick = function() {    console.log('点击消息框');    // 打开相关的视图    n.close();};//当有错误发生时会onerror函数会被调用//如果没有granted授权,创建Notification对象实例时,也会执行onerror函数n.onerror = function() {    console.log('消息框错误');    // 做些其他的事};//一个消息框关闭时onclose函数会被调用n.onclose = function() {    console.log('关闭消息框');    //做些其他的事};

一个简单的例子

<!DOCTYPE html><html lang="en">  <head>    <meta charset="UTF-8" />    <title>Document</title>  </head>  <body>    <button>点击发起通知</button>  </body>  <script>    window.addEventListener("load", function() {      // 首先,让我们检查我们是否有权限发出通知      // 如果没有,我们就请求获得权限      if (window.Notification && Notification.permission !== "granted") {        Notification.requestPermission(function(status) {          if (Notification.permission !== status) {            Notification.permission = status;          }        });      }      var button = document.getElementsByTagName("button")[0];      button.addEventListener("click", function() {        // 如果用户同意就创建一个通知        if (window.Notification && Notification.permission === "granted") {          var n = new Notification("Hi!");        }        // 如果用户没有选择是否显示通知        // 注:因为在 Chrome 中我们无法确定 permission 属性是否有值,因此        // 检查该属性的值是否是 "default" 是不安全的。        else if (window.Notification && Notification.permission !== "denied") {          Notification.requestPermission(function(status) {            if (Notification.permission !== status) {              Notification.permission = status;            }            // 如果用户同意了            if (status === "granted") {              var n = new Notification("Hi!");            }            // 否则,我们可以让步的使用常规模态的 alert            else {              alert("Hi!");            }          });        }        // 如果用户拒绝接受通知        else {          // 我们可以让步的使用常规模态的 alert          alert("Hi!");        }      });    });  </script></html>

当我们打开界面的时候,就会弹出授权申请,如果我们点击 允许 ,然后点击按钮,就可以发送一条通知到桌面,我们就可以在桌面右下角看到这条通知。

HTML5中如何实现Web Notification桌面通知功能

上面我们只是显示一条消息。

if (status === "granted") {  var n = new Notification("Hi");}

如果我们有很多消息的话,比如我是用个for循环来模拟大量通知的情况。

for(var i=0; i<10; i++) {    var n = new Notification("Hi,"+i);}

可以看到有10条通知都显示出来。但是某些情况下对于用户来说,显示大量通知是件令人痛苦的事情。

比如,如果一个即时通信应用向用户提示每一条传入的消息。为了避免数以百计的不必要通知铺满用户的桌面,可能需要接管一个挂起消息的队列。

HTML5中如何实现Web Notification桌面通知功能

因此,需要为新建的通知添加一个 标记 。

如果有一条新通知和上一条通知具有相同的标记,那么这条新通知将会替换上一条通知,最后桌面上只会显示最新的通知。

还是上面的例子,只需要在触发通知加个 tag 属性即可:

for (var i = 0; i < 10; i++) {   // 最后只看到内容为 "Hi! 9" 的通知    var n = new Notification("Hi! " + i, {tag: 'soManyNotification'});}

最后

消息通知是个不错的特性,可是也不排除有些站点恶意的使用这个功能,一旦用户授权之后,不时的推送一些不太友好的消息,打扰用户的工作,这个时候我们可以移除该站点的权限,禁用其消息通知功能。

我们可以点击浏览器地址输入框左边的叹号就有一个通知的选项,我们可以修改授权。或者在通知页面也有修改通知的选项,可以根据具体情况进行修改授权通知。

HTML5中如何实现Web Notification桌面通知功能

HTML5中如何实现Web Notification桌面通知功能

于是最基本的 Web Notification 就实现了。

感谢你能够认真阅读完这篇文章,希望小编分享的“HTML5中如何实现Web Notification桌面通知功能”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: HTML5中如何实现Web Notification桌面通知功能

本文链接: https://www.lsjlt.com/news/256010.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • HTML5中如何实现Web Notification桌面通知功能
    这篇文章主要介绍了HTML5中如何实现Web Notification桌面通知功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。有的时候我们会在桌面右下角看到这样的提示:这种...
    99+
    2023-06-09
  • HTML5如何实现Notification API桌面通知功能
    这篇文章主要为大家展示了“HTML5如何实现Notification API桌面通知功能 ”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“HTML5如何实现Not...
    99+
    2024-04-02
  • 如何使用HTML5实现Notification API桌面通知功能
    这篇文章将为大家详细讲解有关如何使用HTML5实现Notification API桌面通知功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。   为什么需要HTML5的...
    99+
    2024-04-02
  • 怎么在HTML5中实现Web Notification桌面右下角通知功能
    这篇文章将为大家详细讲解有关怎么在HTML5中实现Web Notification桌面右下角通知功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。html5桌面通知(Web Notifica...
    99+
    2023-06-09
  • Html5中桌面通知Notification的实现示例
    这篇文章主要介绍Html5中桌面通知Notification的实现示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. 实例一个Notificationlet n = new ...
    99+
    2023-06-09
  • HTML5如何实现桌面通知提示功能
    这篇文章主要介绍HTML5如何实现桌面通知提示功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体代码如下所示:<button id="button&qu...
    99+
    2024-04-02
  • 如何使用HTML5的Notification API制作web通知功能
    本篇内容介绍了“如何使用HTML5的Notification API制作web通知功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大...
    99+
    2024-04-02
  • 如何实现html5桌面通知
    这篇文章主要讲解了“如何实现html5桌面通知”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何实现html5桌面通知”吧!html5桌面通知(Web No...
    99+
    2024-04-02
  • vue如何实现浏览器桌面通知
    本篇内容主要讲解“vue如何实现浏览器桌面通知”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue如何实现浏览器桌面通知”吧!浏览器桌面通知:当浏览器最小化,或者切换到其他标签页不在当前系统页面...
    99+
    2023-07-04
  • Android中怎么使用AlarmManager和Notification实现定时通知提醒功能
    这期内容当中小编将会给大家带来有关Android中怎么使用AlarmManager和Notification实现定时通知提醒功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。AlarmManager简介A...
    99+
    2023-05-30
    android alarmmanager notification
  • HTML5中如何实现拖放功能
    这篇文章主要介绍了HTML5中如何实现拖放功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、什么是拖放拖放就是通过鼠标放在一个物体上,按住鼠标不放就可以把一个物体托动到另...
    99+
    2023-06-09
  • 如何实现HTML5页面中长按保存图片功能
    这篇文章主要为大家展示了“如何实现HTML5页面中长按保存图片功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何实现HTML5页面中长按保存图片功能”这篇文...
    99+
    2024-04-02
  • php如何实现Web页面的打印功能
    这篇文章主要讲解了“php如何实现Web页面的打印功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php如何实现Web页面的打印功能”吧!下面,我们先简单介绍一下能够实现打印功能的基本知识...
    99+
    2023-07-05
  • 如何在PHP CMS系统中实现消息通知功能
    在如今社交化、信息化的互联网时代,消息通知功能成为了许多网站或系统中必不可少的一部分。对于PHP CMS系统而言,实现消息通知功能不仅可以提升用户体验,而且也可以为网站的运营和维护提供...
    99+
    2024-04-02
  • HTML5如何实现录音功能
    这篇文章主要介绍了HTML5如何实现录音功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。获取 PCM 数据处理 PCM 数据Float32 转 Int16ArrayBuff...
    99+
    2023-06-09
  • 如何通过html5 DeviceOrientation实现微信摇一摇功能
    这篇文章将为大家详细讲解有关如何通过html5 DeviceOrientation实现微信摇一摇功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在HTML...
    99+
    2024-04-02
  • html5如何实现拍照功能
    这篇文章将为大家详细讲解有关html5如何实现拍照功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 1、 视频流 HTML5 The Media Capture A...
    99+
    2024-04-02
  • 微信小程序服务通知功能如何实现
    这篇文章主要介绍“微信小程序服务通知功能如何实现”,在日常操作中,相信很多人在微信小程序服务通知功能如何实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”微信小程序服务通知功能如何实现”的疑惑有所帮助!接下来...
    99+
    2023-06-26
  • 如何在PostgreSQL中实现异步通知和消息队列功能
    在PostgreSQL中实现异步通知和消息队列功能可以通过使用触发器和通知功能来实现。 创建一个触发器,在需要发送通知的时候触发该...
    99+
    2024-04-02
  • html5如何实现放大镜功能
    今天小编给大家分享一下html5如何实现放大镜功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。html5实现放大镜功能的方...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作