最近总是有一些每天需要做的任务遗忘,由于每天电脑开机浏览器就会打开,所以想着做一个插件,在特定的时间提醒自己做某一件事。
主文件:manifest.json
代码:
{ // 这个字段将用在安装对话框,扩展管理界面,和store里面,弹出通知的标题 "name": "桌面助手", // 扩展的版本用一个到4个数字来表示,中间用点隔开,必须在0到65535之间,非零数字不能0开头 "version": "1", // 描述扩种的一段字符串(不能是html或者其他格式,不能超过132个字符)。这个描述必须对浏览器扩展的管理界面和Chrome Web Store都合适。 "description": "桌面提醒插件", // 一个或者多个图标来表示扩展,app,和皮肤 "icons": { "16":"images/32.png", "128": "images/128.png" // 在webstore安装的时候使用 }, // 扩展或app将使用的一组权限 "permissions": ["tabs", "notifications"], // Manifest V2 用background属性取代了background_page // 这里指定了一个Javascript脚本 "background": { "scripts": ["background.js"] }, // Manifest version 1在Chrome18中已经被弃用了,这里应该指定为2 "manifest_version": 2 }
具体执行任务的js:background.js
代码:
/* created 2017-11-22 by 1540077031 v2.0.3 | (c) 2017 */ //配置通用参数 /* 根据语义可知含义 */ var date=getDate(); var json={"moringhour":9,"moringminute":10,"moringsecond":10,"middayhour":11, "middayminute":59,"middaysecond":10,"afternoonhour":17,"afternoonminute":35,"afternoonsecond":10}; //温馨提醒 function showRemind(){ //alert(Boolean(window.Notification)); //判断浏览器是否支持通知 //欢迎通知参数 var options={ type:"image", dir: "ltr", //控制方向,据说目前浏览器还不支持 lang: "utf-8", icon: "images/18.png", image:"images/oneremind.jpg", body: "电脑使用一小时了,请休息一下吧", sound:"" }; //创建通知对象 var n = new Notification("桌面小助手", options); //显示通知 n.onshow = function () { setTimeout(n.close.bind(n), 8000); } n.show(); } function showWelcome(){ //alert(Boolean(window.Notification)); //判断浏览器是否支持通知 //欢迎通知参数 var options={ type:"image", dir: "ltr", //控制方向,据说目前浏览器还不支持 lang: "utf-8", icon: "images/18.png", image:"images/timg1.jpg", body: "你好,欢迎使用桌面小助手", sound:"9284.wav" }; //创建通知对象 var n = new Notification("桌面小助手", options); //显示通知 n.onshow = function () { setTimeout(n.close.bind(n), 8000); } n.show(); } //早上通知参数 function showMorning(){ var image1=["images/m1.jpg","images/m2.jpg","images/m3.jpg","images/m4.jpg"]; var index1 = Math.floor((Math.random()*image1.length)); var options={ dir: "ltr", //控制方向,据说目前浏览器还不支持 lang: "utf-8", icon: "images/18.png", image:image1[index1], body: "早上好,希望以最好的状态度过这一天,加油!!" }; //创建通知对象 var n = new Notification("桌面小助手", options); //定时关闭通知 n.onshow = function () { setTimeout(n.close.bind(n), 8000); } //显示通知 n.show(); } //中午通知参数 function showMidday(){ var image2=["images/d1.jpg","images/d2.jpg","images/d3.jpg","images/d4.jpg","images/d5.jpg","images/d6.jpg","images/d7.jpg","images/d8.jpg","images/d9.jpg","images/d10.jpg","images/d11.jpg","images/d12.jpg","images/d13.jpg","images/d14.jpg","images/d15.jpg"]; var index2 = Math.floor((Math.random()*image2.length)); var options={ dir: "ltr", //控制方向,据说目前浏览器还不支持 lang: "utf-8", icon: "images/18.png", image:image2[index2], body: "中午了 考虑一下吃什么去呢?", sound:"" }; //创建通知对象 var n = new Notification("桌面小助手", options); //定时关闭通知 n.onshow = function () { setTimeout(n.close.bind(n), 8000); } //显示通知 n.show(); } //通知配置通知参数 function showNotification(){ var options={ dir: "ltr", //控制方向,据说目前浏览器还不支持 lang: "utf-8", icon: "images/18.png", image:"images/remind.jpg", body: "快出来写日报啦"+date, sound:"9284.wav" }; //创建通知对象 var n = new Notification("桌面小助手", options); //定时关闭通知 n.onshow = function () { setTimeout(n.close.bind(n), 8000); } //显示通知 n.show(); n.onclick = function() { window.open('http://XXXX.XXX.XXX:9999/in/', '_blank'); } } //浏览器是否支持 webkitNotifications if(("Notification" in window)){ timing(); //isFirst();//每次打开浏览器通知 } //定时任务 function timing(){ var go=setInterval(run,1000); } //具体执行方法 function run(){ var date=new Date(); //json字符串转对象 var obj=eval(json); if(date.getHours()==obj.afternoonhour&& date.getMinutes()==obj.afternoonminute && date.getSeconds()==obj.afternoonsecond){ //clearInterval(go); //终止定时任务 showNotification(); //下午通知显示 }else if(date.getHours()==obj.moringhour&& date.getMinutes()==obj.moringminute && date.getSeconds()==obj.moringsecond){ showMorning(); //早上通知显示 }else if(date.getHours()==obj.middayhour&& date.getMinutes()==obj.middayminute && date.getSeconds()==obj.middaysecond){ showMidday(); //中午通知显示 }else{ modifyflag(); } } //判断是否第一次安装 function isFirst(){ var f=true; //第一次安装则显示cookies实现 if(getCookie("flag")=='' && getCookie("flag")!=true){ showWelcome();//欢迎通知显示 document.cookie="flag="+f; } } //获取cookies function getCookie(c_name) { if (document.cookie.length>0) { c_start=document.cookie.indexOf(c_name + "=") if (c_start!=-1) { c_start=c_start + c_name.length+1 c_end=document.cookie.indexOf(";",c_start) if (c_end==-1) c_end=document.cookie.length return unescape(document.cookie.substring(c_start,c_end)) } } return "" } //获取当前时间格式化 function getDate(){ var date = new Date(); var year = date.getFullYear(); var month = date.getMonth() + 1; var strDate = date.getDate(); var hour=date.getHours(); var minute=date.getMinutes(); var second=date.getSeconds(); if (month >= 1 && month <= 9) { month = "0" + month; } if (strDate >= 0 && strDate <= 9) { trDate = "0" + strDate; } if(hour>=0 && hour <=9){ hour="0"+hour; } if(minute>=0 && minute <=9){ minute="0"+minute; } if(second>=0 && second <=9){ second="0"+second; } var currentdate = year +"年"+ month+"月" + strDate+"日" + hour +"时"+ minute +"分"+ second+"秒"; return currentdate; }
还有一些图片都放在一个文件夹images中
其他的操作就是打包测试了。当然每个人的想法都不一样,我只提供自己的想法,具体的实现大家可以按照自己的需要做。
项目仓库地址:https://github.com/liberliushahe/remind