斗鱼扩展--notifications提示(十二)
来说下 桌面通知 Notification,HTML5支持 Web Notifications 的实例,但是要经过用户允许,
chrome://settings/content/notifications
设置/高级设置/内容设置/通知 里查看哪些是禁止或授权的,还可以在网页栏左边查看

代码如下
if (window.Notification) {
if (Notification.permission != "granted") {
Notification.requestPermission(function (permission) {
MyNotification();
});
}else{
MyNotification();
}
//禁止了弹窗
function MyNotification() {
if (Notification.permission == "granted") {
var notification = new Notification("标题", {
body: "内容",
icon: "https://www.baidu.com/img/bd_logo1.png"
});
//消息框被点击事件
notification.onclick = function () {
notification.close();
};
notification.onshow = function () {
setTimeout(function () {
notification.close();
}, 5000);
};
}
}
} else {
alert("不支持Notification");
}
效果如下:

Chrome 自己的notifications 的授权是在manifest.json 文件中,需要用户点击授权按钮。
事说下扩展结构 ,3个文件,manifest.json,一个js文件,一个图片icon文件。
manifest.json 代码如下
{
"manifest_version": 2,
"name": "消息提示",
"version": "1.0.0",
"permissions": [
"notifications"
],
"background": {"scripts": [
"notifications.js"
]}
}
notifications.js 代码如下
/* 桌面消息通知
* _msg 消息内容
* _title 标题
* _ico 图标
* _time 多少毫秒后销毁
*/
function myNotification(_msg,_title,_ico,_time){
var ico = _ico || "ico/icon.png";
var title = _title || "通知";
var msg = String(_msg)|| "消息!";
var time = _time || 5000;
//显示一个桌面通知
if(window.webkitNotifications){
var notification = window.webkitNotifications.createNotification(ico,title,msg);
notification.show();
setTimeout(function(){notification.cancel();}, time);
}else if(chrome.notifications){
var opt = {
type: 'basic',
title: title,
message: msg,
iconUrl:ico,
}
chrome.notifications.create('', opt, function(id){
setTimeout(function(){
chrome.notifications.clear(id, function(){});
}, time);
});
}
};
这段代码是运行在 后台的,所以只能后台调用
如 myNotification("标题","你好世界");

这样就能 以弹窗的形式 ,提示用户 已抢了多少宝箱了,,收益如何。。

斗鱼扩展--notifications提示(十二)的更多相关文章
- 「十二省联考 2019」皮配——dp
题目 [题目描述] #### 题目背景一年一度的综艺节目<中国好码农>又开始了.本季度,好码农由 Yazid.Zayid.小 R.大 R 四位梦想导师坐镇,他们都将组建自己的梦想战队,并率 ...
- 「十二省联考 2019」字符串问题——SAM+DAG
题目 [题目描述] Yazid 和 Tiffany 喜欢字符串问题.在这里,我们将给你介绍一些关于字符串的基本概念. 对于一个字符串 $S$, 我们定义 $\lvert S\rvert$ 表示 $S$ ...
- NeHe OpenGL教程 第二十二课:凹凸映射
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- 《Linux命令行与shell脚本编程大全》 第二十二章 学习笔记
第二十二章:使用其他shell 什么是dash shell Debian的dash shell是ash shell的直系后代,ash shell是Unix系统上原来地Bourne shell的简化版本 ...
- Python开发【第二十二篇】:Web框架之Django【进阶】
Python开发[第二十二篇]:Web框架之Django[进阶] 猛击这里:http://www.cnblogs.com/wupeiqi/articles/5246483.html 博客园 首页 ...
- SQL Server 2008空间数据应用系列十二:Bing Maps中呈现GeoRSS订阅的空间数据
原文:SQL Server 2008空间数据应用系列十二:Bing Maps中呈现GeoRSS订阅的空间数据 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Se ...
- 【OpenCV新手教程之十二】OpenCV边缘检測:Canny算子,Sobel算子,Laplace算子,Scharr滤波器合辑
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/25560901 作者:毛星云(浅墨) ...
- java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)
java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessCo ...
- Alamofire源码解读系列(十二)之请求(Request)
本篇是Alamofire中的请求抽象层的讲解 前言 在Alamofire中,围绕着Request,设计了很多额外的特性,这也恰恰表明,Request是所有请求的基础部分和发起点.这无疑给我们一个Req ...
随机推荐
- JS万金油的类型判断方法
Object.prototype.toString.call(data).slice(8, -1).toLowerCase();
- js对象的深浅拷贝
JS数据类型可以分为(ES5,暂时不考虑ES6): 简单数据类型:Number.String.undefined.boolean 复杂数据类型:Object.Array 简单的数据类型,往往是赋值操作 ...
- (原创)BZOJ 2038 小Z的袜子(hose) 莫队入门题+分块
I - 小Z的袜子(hose) 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命…… 具体来说,小Z ...
- Tomcat—Bad Request
前段时间,由于搭建环境的问题,项目暂停了一个多月,终于再次拿起来了,可是历史问题还是没有解决,再次让问题重现了一把. 上面的图片的大概意思就是:错误请求(无效主机名称) 看到这个,我一开始是兴 ...
- Miners
Miners 有三种食品,两组矿工.矿工们根据最近三次过来的食品车产煤,产出煤的个数就是新过来的食品车,和前面两辆车中,不同的食品车的个数. 现在你有一个长度为n的食品车序列,请合理分配它们给两组矿工 ...
- CF567E President and Roads
\(\color{#0066ff}{ 题目描述 }\) 给出一个有向图,从起点走到终点(必须走最短路),问一条边是否一定会被经过,如果不经过它,可以减小它的多少边权使得经过它(边权不能减少到0) \( ...
- 关于STM32F407启动后的系统时钟频率问题
玩STM32的时间也比较久了,最早的一直玩的是STD标准库的103系列,但是ST公司也是“与时俱进”,舍弃了当年的标准库,转而推广HAL库,反正无论怎么样把,对于STM32的使用也仅仅停留在使用阶段, ...
- 命令行编译运行Java程序
- react 中文文档案例七 (温度计)
const scaleNames = { c: 'Celsius', f: 'Fahrenheit' }; function toCelsius(fahrenheit) { ) * / ; } fun ...
- 项目笔记《DeepLung:Deep 3D Dual Path Nets for Automated Pulmonary Nodule Detection and Classification》(一)预处理
最近一个月都在做肺结节的检测,学到了不少东西,运行的项目主要是基于这篇论文,在github上可以查到项目代码. 我个人总结的肺结节检测可以分为三个阶段,数据预处理,网络搭建及训练,结果评估. 这篇博客 ...