Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Web Notification 让浏览器实现系统级消息通知

Web Notification 让浏览器实现系统级消息通知

作者头像
德顺
发布于 2024-05-15 12:41:41
发布于 2024-05-15 12:41:41
1.1K02
代码可运行
举报
文章被收录于专栏:前端资源前端资源
运行总次数:2
代码可运行

前段时间有个需求,系统有即时消息的功能,要求在收到消息后能有一个比较明显的提示,即使是在浏览器最小化的时候也能看到提醒。

目前像 alert 、confirm 包括一些 JavaScript 控制的提示都是页面级的,只有在当前页签聚焦的情况像才能看到,更别说浏览器最小化了。

于是就了解到 Web Notification。

Notification 简介

Notifications API 的 Notification 接口用于向用户配置和显示桌面通知。

这些通知的外观和功能因平台而异,但通常它们提供了一种异步向用户提供信息的方式。

Notification 的使用

一个简单的示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function notifyMe() {
    new Notification("通知标题:", {
      body: '通知内容',
      icon: 'https://www.w3h5.com/static/images/logo-180.png'
    })
}

if (!("Notification" in window)) {
    // 检查浏览器是否支持通知
    alert("当前浏览器不支持桌面通知");
  } else if (Notification.permission === "granted") {
    // 检查是否已授予通知权限;如果是的话,发送通知
    notifyMe();
  } else if (Notification.permission !== "denied") {
    // 我们需要征求用户的许可
    Notification.requestPermission().then((permission) => {
      // 如果用户接受,我们就发送通知
      if (permission === "granted") {
        notifyMe();
      }
    });
  }

如果没有弹出弹窗,有两种可能

  • 浏览器不支持 Notifications API
  • 需要获得通知授权。

是否支持 Notification 可以通过 window.Notification 是否存在来判断,如果支持的情况下没有弹出就需要获得授权。通过调用 Notification.requestPermission(callback) 来获取用户授权,授权后可正常弹出。

用户需要点击“允许此网站显示通知”,就可以正常收到消息提醒了。

主动关闭通知

可以通过调用 Notification.close() 方法,主动关闭关闭通知。

Notification 常用参数

new Notification(title, options) 通过 new 构造,调用通知方法。其中 title 是必选参数,表示通知的标题内容,options 是可选参数,详见下表:

属性

含义

类型

body

内容主体

字符串

icon

通知图标

字符串

silent

是否需要声音

布尔值

sound

声音地址,可以播放提示声音

字符串

data

任意类型和通知相关联的数据

对象

vibrate

震动模式

数组

tag

通知标识

字符串

renotify

通知是否使用叠加效果,默认true,fasle则为替换

布尔值

noscreen

是否不在屏幕上显示通知,用于移动端,默认false

布尔值

通知堆叠效果 false 仅显示最新的一个。

其中 vibrate 是个很有意思的属性,在 Notification 使用 vibrate 属性可以使设备震动,填入 [300, 100, 300] , 表示设备振动 300毫秒,然后停止100毫秒,再振动300毫秒。

使用该效果虽然更能引起用户的注意,但是也会有过分打扰用户。有些浏览器也没有实现该效果,慎重使用。

Notification 的相关事件

事件名

含义

Notification.onclick

通知被点击时

Notification.onerror

通知显示异常时,躲在用户没有给通知时触发

Notification.onclose

通知被关闭时

Notification.onshow

通知显示时

Notification 还提供了一些只读属性,可供一些特殊需求使用,大部分和 options 相同 列如:titlebodytagiconsilenttimestamp(通知创建的时间),noscreen 等。

Notification 的兼容性

需要注意的是:Notification 这项功能仅在一些支持的浏览器的安全上下文(HTTPS)中可用,也就是必须在 https 域名(有证书)的场景下才能正常使用,如果是不安全的被认为谷歌浏览器直接就会把提示消息这个功能给禁用掉,导致无法授权。

支持的浏览器:

在现代浏览器的支持还是比较好的,Edge 的高版本也做了支持,不过对于 IE 已经其他老版本的浏览器,还是需要考虑兼容性和备用方案。

参考资料:

Notification - Web API | MDN

"Web Notification" | Can I use...

未经允许不得转载:前端资源网 - w3h5 » Web Notification 让浏览器实现系统级消息通知

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
聊聊HTML5中的Web Notification桌面通知
这种桌面提示是HTML5新增的 Web Push Notifications 技术。
Daotin
2019/07/28
2.4K0
H5的Notification特性 - Web的桌面通知功能
本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/49
joshua317
2021/08/31
2.3K0
H5的Notification特性 - Web的桌面通知功能
给 Pokers 加上 HTML5 Web Notification
正在研究 Websocket,先搞一搞 HTML5 特征 Web Notification API 来简单实现浏览器在线的消息推送
Tony He
2022/11/17
6600
H5 notification浏览器桌面通知
Notification是HTML5新增的API,用于向用户配置和显示桌面通知。上次在别的网站上看到别人的通知弹窗,好奇之余也想知道如何实现的。实际去查一下发现并不复杂,且可以说比较简单,故写篇博客分享给大家,希望能帮你们了解这个API。
OBKoro1
2020/10/27
1.9K0
H5 notification浏览器桌面通知
Html Notification通知的简单使用(转)
注意 最新的Chrome的Notification要想有效果需要https协议才行。
javascript.shop
2019/09/04
3.1K0
Html Notification通知的简单使用(转)
网站在线客服系统新消息提醒功能,支持浏览器桌面通知提醒,网页新消息声音,标题闪动效果功能实现
当我们的网站收到一条新消息的时候,需要能通知给正在访问网页的人员 浏览器打开的情况下,可以展示在电脑桌面右下角 //浏览器桌面通知 function notify(title, options, callback) { // 先检查浏览器是否支持 if (!window.Notification) { console.log("浏览器不支持notify"); return; } options.body=replaceHtml(options
唯一Chat
2023/02/17
1.3K0
网站在线客服系统新消息提醒功能,支持浏览器桌面通知提醒,网页新消息声音,标题闪动效果功能实现
[html5] (Notification) 桌面通知
[html5] (Notification) 桌面通知 前几天要做一个桌面通知的功能,翻查以前做的笔记,发现webkitNotifications这个已经不能用了,baidu了下,基本都是介绍webkitNotifications的,后来在SOF上找到答案,现在chrome支持的是Notification,估计是W3C标准化了。api也变了,mark之。 ---- Notification Properties title:"别动神仙说:" body:"这里是body" icon:"http://q4.ql
用户1631416
2018/04/11
1.3K0
[html5] (Notification) 桌面通知
在线客服系统源码开发实战总结:H5 Notifications浏览器桌面通知
如果自己在弹出授权申请的时候,点击了拒绝,那么可以去浏览器的通知设置里面重新打开下
唯一Chat
2022/11/21
1K0
在线客服系统源码开发实战总结:H5 Notifications浏览器桌面通知
H5 端唤醒 win10 消息通知
浏览器也可以调用Win10系统的消息提示,纯JS代码,复制到HTML网页中直接打开即可。 代码 // 判断浏览器是否支持唤醒 if (window.Notification) { let popNotice = () => { if (!Notification.permission === 'granted') return const notification = new Notification('Hello', { icon: requ
骤雨重山
2022/01/17
3670
Web Notification桌面推送消息
以上的问题其实都很好解决,MDN 上有很多配置可以去看一下,配置啥,图标呀,图片呀,标题呀,是否强制用户交互呀,等等的操作都在MDN 有介绍,接下来的我觉得才可以看看
我乃小神神
2020/04/30
1.7K0
HTML5中的Web Notification桌面通知
大家在做一些浏览器端的聊天功能的时候,或者在一些网站跟在线客服咨询的时候,会看到一些消息通知的提示,常见的有浏览器标签页的闪烁和屏幕右侧的消息通知。本篇博客就在这里简单的介绍一下如何实现这样的功能。 1、实现标签页闪烁效果 实现的效果: 当前窗体失焦的时候,标题开始闪动,当前窗体获取焦点的时候,则停止闪动。 注意:这里需要用到窗口的获取焦点和失去焦点的方法,由于IE和其他Chrome及FireFox的区别,这里需要用到的方法就不一样,具体是:   Chrome和FireFox浏览器是window的onf
用户1174387
2018/03/28
2.4K0
HTML5中的Web Notification桌面通知
Notification API,为你的网页添加桌面通知推送
其实,MDN 的说明已经可以让我们很清楚知道 Notification 的作用。Notification 能够为用户提供异步的桌面消息通知,即使你缩小浏览器或是活动在其他标签页,只要调用该 Api 的标签页没被关闭,它都能工作。在桌面端的浏览器中,除了 IE 不支持外,其他就均已支持。
WahFung
2020/08/24
2K0
Notification API,为你的网页添加桌面通知推送
【设备】桌面通知(Notifications)
概述 桌面通知(Notifications) API 可以方便的为web应用添加桌面通知功能。
Html5知典
2019/11/26
1.1K0
To add browser notifications to an online customer support live chat service system - gofly - self h
There are a number of benefits to adding browser notifications to an online customer service system, including:
唯一Chat
2023/01/05
3030
chrome右下角通知效果
HTML代码: <button id="button">有人想加你为好友</button> <p id="text"></p> JS代码: if (window.Notification) { var button = document.getElementById('button'), text = document.getElementById('text'); var popNotice = function() { if (Notification.pe
2021/11/08
8310
[Go] Go语言实战-基于websocket浏览器通知的实现
当我们使用了websocket技术实现了实时的推送访客来到消息,但是我们只能随时看着页面不离开才能知道有访客来到
唯一Chat
2020/07/28
5140
编程技巧│浏览器 Notification 桌面推送通知
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/170855.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/22
2.9K0
编程技巧│浏览器 Notification 桌面推送通知
HTML5中的Web Notification桌面通知(右下角提示)
html5桌面通知(Web Notifications)对于需要实现在新消息入线时,有桌面通知效果的情况下非常有用,在此简单介绍一下这个html5的新属性。通过Web Notifications(桌面通知系统),网站可以在用户桌面弹出一条通知,无论用户是否浏览当前网页,甚至最小化了浏览器,通知均可到达用户桌面。 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title>
王小婷
2018/05/31
1.1K0
Web 推送技术
作者:villainthr 摘自 前端小吉米 伴随着今年 Google I/O 大会的召开,一个很火的概念--Progressive Web Apps 诞生了。这代表着我们 web 端有了和原生 AP
腾讯IVWEB团队
2017/03/13
4.9K0
前端技巧——js篇
复制操作 copy () { let url = this.code; let oInput = document.createElement('input'); oInput.value = url; document.body.appendChild(oInput); oInput.select(); // 选择对象 console.log(oINput.value); document.execCommand('Cooy'); // 执行浏览器复制命令 alert
流眸
2019/08/12
2.1K0
相关推荐
聊聊HTML5中的Web Notification桌面通知
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验