浏览器 Notification 桌面推送通知

简介: 可视化桌面通知,跟遗忘说再见

🎈 什么是 Notification

  • Notification 是浏览器最小化后在桌面显示消息的一种方法
  • 类似于 360 等流氓软件在桌面右下角的弹窗广告
  • 它与浏览器是脱离的,消息是置顶的

snipaste20220617_144254.png


🎈 弹窗授权

  • 授权当前页面允许通知
  • 可以通过检查只读属性 Notification.permission 的值来查看你是否已经有权限
  • default: 用户还未被询问是否授权,可以通过 Notification.requestPermission() 可以询问用户是否允许通知
  • granted: 用户点击允许后的状态
  • denied: 用户点击拒绝后的状态,通知框不可用
Notification.requestPermission()

dddddd.png


🎈 弹窗使用

  • 可以通过 new Notification($title, $options) 使用通知推送功能
  • title: 一定会被显示的通知标题
  • options: 可选,一个被允许用来设置通知的对象。它包含以下属性:
  • dir: 文字的方向;它的值可以是 auto(自动), ltr(从左到右), or rtl(从右到左)
  • lang: 指定通知中所使用的语言。
  • body: 通知中额外显示的字符串
  • tag: 赋予通知一个ID,以便在必要的时候对通知进行刷新、替换或移除。
  • icon: 一个图片的URL,将被用于显示通知的图标。
newNotification("温馨提醒", {
body: "飞兔小哥送你一份奖品待领取",
icon: "https://autofelix.github.io/autofelix/u/favicon.ico",
data: "https://autofelix.blog.csdn.net/"});


🎈 浏览器支持检测

  • 使用通知推送功能前,需要先检查浏览器是否支持
  • 可以通过 "Notification" in window 方法去检测
  • 在浏览器支持的前提下,判断用户是否授权允许通知,如果还未授权,可以弹出授权框
  • 如果用户已经拒绝过,我们就不去打扰用户了
functionnotify() {
// 先检查浏览器是否支持if (!("Notification"inwindow)) {
alert("This browser does not support desktop notification");
    }
// 检查用户是否同意接受通知elseif (Notification.permission==="granted") {
// If it's okay let's create a notificationvarnotification=newNotification("Hi there!");
    }
// 否则我们需要向用户获取权限elseif (Notification.permission!=="denied") {
Notification.requestPermission().then(function (permission) {
// 如果用户接受权限,我们就可以发起一条消息if (permission==="granted") {
varnotification=newNotification("Hi there!");
            }
        });
    }
// 最后,如果执行到这里,说明用户已经拒绝对相关通知进行授权// 出于尊重,我们不应该再打扰他们了}


🎈 授权回调

  • 该通知有四个回调方法
  • onshow: 在通知展示的时候调用
  • onclose: 在通知关闭的时候调用
  • onclick: 在通知点击的时候调用
  • onerror: 在通知出错的时候调用
varnotification=newNotification("温馨提醒", {
body: "飞兔小哥送你一份奖品待领取",
icon: "https://autofelix.github.io/autofelix/u/favicon.ico",
data: "https://autofelix.blog.csdn.net/"});
notification.onshow=function (event) {
console.log("show : ", event);
};
notification.onclose=function (event) {
console.log("close : ", event);
};
notification.onclick=function (event) {
console.log("click : ", event);
// 当点击事件触发,打开指定的urlwindow.open(event.target.data)
notification.close();
};
notification.onerror=function (event) {
console.log("close : ", event);
};


🎈 3秒后关闭弹窗

  • 实现3秒后关闭弹窗的功能
varnotification=newNotification('标题');
notification.onshow=function () {
setTimeout(function () {
notification.close();
    }, 3000);
}
相关文章
|
API Windows
浅尝浏览器桌面通知 Notification
浅尝浏览器桌面通知 Notification
263 0
|
API Python
七夕节特辑,浏览器桌面太无聊,为什么不做个挂件来陪自己呢?
七夕节特辑,浏览器桌面太无聊,为什么不做个挂件来陪自己呢?
116 0
|
Web App开发 移动开发 HTML5
html5:notification(浏览器通知)
html5:notification(浏览器通知)
241 0
html5:notification(浏览器通知)
|
数据采集 Web App开发 编解码
在 Linux 服务器中创建假桌面运行模拟浏览器有头模式
在 Linux 服务器中创建假桌面运行模拟浏览器有头模式
200 0
|
移动开发 JavaScript 前端开发
【浏览器&exe桌面应用】用nw.js &Electron -HTML和JavaScript制作exe桌面程序-打造浏览器,查询机客户端,大屏展示客户端
【浏览器&exe桌面应用】用nw.js &Electron -HTML和JavaScript制作exe桌面程序-打造浏览器,查询机客户端,大屏展示客户端
178 0
|
Web App开发
Chrome浏览器使用Notification通知消息推送
Chrome浏览器使用Notification通知消息推送
1395 0
Chrome浏览器使用Notification通知消息推送
|
Web App开发 HTML5 移动开发
浏览器桌面通知Notification实践
  一言不合就上图:   最近常常在浏览器看到这样的消息推送,还有QQ.com的推送,现在我对这个不了解,不知道叫消息自动推送对不对,这个时chrome浏览器的截图,出现在右下角,其他浏览器的样式可能有些微差别。
2879 0
|
Web App开发 移动开发 前端开发
H5 notification浏览器桌面通知
Notification是HTML5新增的API,用于向用户配置和显示桌面通知。上次在别的网站上看到别人的通知弹窗,好奇之余也想知道如何实现的。实际去查一下发现并不复杂,且可以说比较简单,故写篇博客分享给大家,希望能帮你们了解这个API。 npm包: 我还发了一个npm包:notification-Koro1,非常轻量简洁,觉得不错的话,点个Star吧~ chrome下Notification的表现: 以谷歌为例,一开始需要用户允许通知:
438 0
H5 notification浏览器桌面通知
|
移动开发 前端开发 API
Notification 浏览器桌面通知
Notification是HTML5新增的API,用于想用户配置和现实桌面通知。这些通知的外观和特定功能因平台而异。 Notification通知是脱离浏览器的,即使用户没有停留在当前的标签页,甚至最小化了浏览器,也会在主屏幕的右下角显示通知,然后过一段时间后消失。 Notification在操作中也可以监听通知的显示,点击,关闭等事件。
357 0
|
Java
Java 自动化 - 调用sikuli实现图像识别桌面自动化:打开浏览器查询天气实例演示,java调用图形化脚本语言sikuli实现自动化
Java 自动化 - 调用sikuli实现图像识别桌面自动化:打开浏览器查询天气实例演示,java调用图形化脚本语言sikuli实现自动化
510 0
Java 自动化 - 调用sikuli实现图像识别桌面自动化:打开浏览器查询天气实例演示,java调用图形化脚本语言sikuli实现自动化