notification(浏览器通知)
一、notification简介
Web Notifications是HTML5 的一个特性,目前我知道的有谷歌浏览器和windows edge对它进行了支持,用于向用户配置和显示桌面通知。
二、notification方法
2.1静态方法
这些方法仅在 Notification 对象中有效。
Notification.requestPermission()
用于当前页面想用户申请显示通知的权限。这个方法只能被用户行为调用(比如:onclick 事件),并且不能被其他的方式调用。
2.2实例方法
这些方法仅在 Notification 实例或其 prototype 中有效。
1,Notification.close()
用于关闭通知。
Notification 对象继承自 EventTarget 接口。
2,EventTarget.addEventListener()
Register an event handler of a specific event type on the EventTarget.
3,EventTarget.removeEventListener()
Removes an event listener from the EventTarget.
4,EventTarget.dispatchEvent()
Dispatch an event to this EventTarget.
三、notification举例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<style>
body{position: relative;}
.notification {
width: 200px;
height: 50px;
padding: 20px;
line-height: 50px;
text-align: center;
background: #008800;
border-radius: 5px;
font-size: 30px;
position: absolute;
left: 45%;
}
</style>
</head>
<body>
<div class="notification" @click="notifyMe()">notification</div>
</body>
<script type="text/javascript">
var app = new Vue({
el: '.notification',
data: {},
methods: {
notifyMe() {
// 先检查浏览器是否支持
if(!("Notification" in window)) {
alert("This browser does not support desktop notification");
}
// 检查用户是否同意接受通知
else if(Notification.permission === "granted") {
// If it's okay let's create a notification
var notification = new Notification("你好snowball:", {
dir: "auto", //auto(自动), ltr(从左到右), or rtl(从右到左)
lang: "zh", //指定通知中所使用的语言。这个字符串必须在 BCP 47 language tag 文档中是有效的。
tag: "testTag", //赋予通知一个ID,以便在必要的时候对通知进行刷新、替换或移除。
icon: "http://api.dangmeitoutiao.com/_/boss/0/img/2018/02/12/20180212085006554.JPEG", //提示时候的图标
body: "今天是个好天气" // 一个图片的URL,将被用于显示通知的图标。
});
}
// 否则我们需要向用户获取权限
else if(Notification.permission !== 'denied') {
Notification.requestPermission(function(permission) {
// 如果用户同意,就可以向他们发送通知
if(permission === "granted") {
var notification = new Notification("你好snowball:", {
dir: "auto", //auto(自动), ltr(从左到右), or rtl(从右到左)
lang: "zh", //指定通知中所使用的语言。这个字符串必须在 BCP 47 language tag 文档中是有效的。
tag: "testTag", //赋予通知一个ID,以便在必要的时候对通知进行刷新、替换或移除。
icon: "http://api.dangmeitoutiao.com/_/boss/0/img/2018/02/12/20180212085006554.JPEG", //提示时候的图标
body: "今天是个好天气" // 一个图片的URL,将被用于显示通知的图标。
});
}
});
}
// 最后,如果执行到这里,说明用户已经拒绝对相关通知进行授权
// 出于尊重,我们不应该再打扰他们了
}
}
})
</script>
</html>
四、取消允许
chrome:浏览器设置-->内容设置-->通知-->允许-->点击删除某个网站。
截图:
4.1
4.2
4.3
4.4
4.5
兼容:
五、个人体会
目前只是实现了浏览器端的notification,如果再写个接口,从接口中调取数据,在boss后台做信息管理与是否显示这样就非常棒了。
六、参考资料
notification(浏览器通知)的更多相关文章
- H5 notification浏览器桌面通知
Notification是HTML5新增的API,用于向用户配置和显示桌面通知.上次在别的网站上看到别人的通知弹窗,好奇之余也想知道如何实现的.实际去查一下发现并不复杂,且可以说比较简单,故写篇博客分 ...
- 简单了解HTML5中的Web Notification桌面通知
原文:http://www.zhangxinxu.com/wordpress/2016/07/know-html5-web-notification/ 需要注意的是,消息通知只有通过Web服务访问该页 ...
- Android中的通知—Notification 自定义通知
Android中Notification通知的实现步骤: 1.获取NotificationManager对象NotificationManager的三个公共方法:①cancel(int id) 取消以 ...
- [html5] (Notification) 桌面通知
前几天要做一个桌面通知的功能,翻查以前做的笔记,发现webkitNotifications这个已经不能用了,baidu了下,基本都是介绍webkitNotifications的,后来在SOF上找到答案 ...
- Android学习总结(十五) ———— Notification(状态栏通知)基本用法
一.Notification基本概念 Notification是一种具有全局效果的通知,它展示在屏幕的顶端,首先会表现为一个图标的形式,当用户向下滑动的时候,展示出通知具体的内容.我们在用手机的时候 ...
- Android Notification 消息通知 相关资料.md
目录 Android Notification 消息通知 相关资料 Android 5.0 Lollipop (API 21)无法正常显示通知图标,只能看到一个白色方块或灰色方块的问题 解决方案 参考 ...
- 浏览器通知--window.Notification
参考链接:http://blog.csdn.net/guoquanyou/article/details/51726571 Web Notifications是HTML5 的一个特性,目前我知道的有谷 ...
- js实现浏览器通知功能
概述 Notification API是浏览器的通知接口,用于在用户的桌面(而不是网页上)显示通知信息,桌面电脑和手机都适用,比如通知用户收到了一封Email.具体的实现形式由浏览器自行部署,对于手机 ...
- HTML5中的Web Notification桌面通知
大家在做一些浏览器端的聊天功能的时候,或者在一些网站跟在线客服咨询的时候,会看到一些消息通知的提示,常见的有浏览器标签页的闪烁和屏幕右侧的消息通知.本篇博客就在这里简单的介绍一下如何实现这样的功能. ...
随机推荐
- linux多进/线程编程(3)——wait、waitpid函数和孤儿、僵尸进程
当使用fork创建多个进程后,需要解决子进程回收的问题.wait和waitpid函数就是做这个工作的. 假设子进程没有合理的回收,可能会带来两个问题: 1.孤儿进程(父进程挂了,子进程活着),孤儿进程 ...
- Python脚本生成可执行文件&(恋爱小脚本)
Python脚本生成可执行文件&(恋爱小脚本) 参考文献: http://c.biancheng.net/view/2690.html; https://blog.csdn.net/qq_39 ...
- 01-RocketMQ介绍
一.MQ介绍 1.什么是MQ?为什么要用MQ? MQ:MessageQueue,消息队列. 队列,是一种FIFO 先进先出的数据结构.消息由生产者发送到MQ进行排队,然后按原来的顺序交由消息的消费者进 ...
- JZ-045-扑克牌顺子
扑克牌顺子 题目描述 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的 ...
- 微信小程序简易富文本
- [] == ![] 返回 true
对于==来说,如果数据类型不同,就会进行隐式类型转换. 首先判断是否在对比 null 和 undefined,是的话就会返回 true: 判断其中一方是否为 string ,在与 number进行比较 ...
- Open Babel的安装与使用
技术背景 Open Babel是化学领域常用的一个文件格式转换工具,它可以支持xyz的坐标格式.SMILES表达式.InChI表达式和mol以及mol2等格式之间的互相转化.比如说,你只有一个甲烷的S ...
- Ubuntu系统中防火墙的使用和开放端口
目录 Ubuntu系统 防火墙的使用和开放端口 1.安装防火墙 2.查看防火墙状态 3.开启.重启.关闭防火墙 4.Ubuntu添加开放.关闭端口 5.开放规定协议的端口 6.关闭指定协议端口 7.开 ...
- How to Rebase Git Branch
转自:How to Rebase Git Branch (with 3 steps) | Git Rebase | W3Docs Steps to rebasing branch Fetching c ...
- 嵌入式无操作系统下管理内存和队列(类UCOS II思想)
例子:存储日志,最多存128条,每条最大1MB. 内存方面 因为嵌入式不适合用动态内存,会产生碎片.这里我们用 u8 data[LOG_SIZE];开辟固定128MB的内存区,再对其分为128个1MB ...