-

相关

这次要介绍如何在谷歌插件中使用nodejs模块,演示的项目是 一个后台定时提醒的插件

运行环境

##基础框架搭建

###创建一个基础的chrome插件框架
可以从谷歌插件的github克隆相应的例子进行修改

基本架构只需要包含:

  • manifest.json (谷歌插件配置文件)
  • background.js (后台逻辑js文件)

##将nodejs库使用转化为浏览器可使用的库

###下载安装browserify
npm install browserify -g

###下载node-schedule

  • cd /mnt && npm install node-schedule
  • cd node_modules
  • browserify -r node-schedule/:node-schedule > node-schedule.js

重点:browserify -r node-schedule/:node-schedule > node-schedule.js命令中的node-schedule/:node-schedule:后面指定browserify转换后生成的js文件可被require的名字
require(node-schedule)

  • 将生成的node-schedule.js文件复制到项目里面

##编写逻辑代码

###background.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
var scheduler = require("node-schedule")
Schedule();


function Schedule() {
//每5秒弹出test的通知
scheduler.scheduleJob('*/5 * * * * *', function () {
notifyMe("test");
});
}

function notifyMe(msg, url) {
if (!Notification) {
alert('Desktop notifications not available in your browser. Try Chromium.');
return;
}
if (Notification.permission !== "granted")
Notification.requestPermission();
else {
var notification = new Notification('test', {
body: msg,
});
};

}


manifest.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"manifest_version": 2,
"name": "googole-extension-test",
"version": "1.0",
"description": "googole-extension-test",
"permissions": [
"notifications"
],
"background": {
"scripts": [
"node-schedule.js",
"background.js"
]
}
}

注意事项

manifest.json中background - >scripts顺序必须是node-schedule.js在background.js前面才能够将node-schedule.js文件中的require函数被background.js识别到(和页面js加载相同原理)

##加载运行
百度

##demo地址