Electron 提供了一个实时构建桌面应用的纯 JavaScript 环境。Electron 可以获取到你定义在 package.json 中 main 文件内容,然后执行它。通过这个文件(通常我们称之为main.js),可以创建一个应用窗口,这个应用窗口包含一个渲染好的 web 界面,还可以和系统原生的 GUI 交互。
直接启动main.js是无法显示应用窗口的,在main.js调用BrowserWindow模块才能使用窗口。每个窗口都将执行属于自己的渲染进程。渲染进程处理的是一个正真的web页面”HTML+CSS+JavaScript”。前端人员也可以用web的形式开发桌面应用啦。
开始electron编程
目录结构
- app 项目目录
- index.js index页面的渲染进程
- list.js list页面的渲染进程
- statics 静态资源目录
- main.js 主进程
- package.json
在项目文件夹中建造package.json文件,内容如下
1 | { |
安装electron
1 | npm install --save-dev electron |
创建入口程序main.js
引入项目依赖,ES6写法
BrowserWindow管理窗口,子窗口可以向ipcMain发送事件,达到窗口间通信的效果
1 | const {app, BrowserWindow , ipcMain} = require('electron') |
创建主窗口
1 | function createWindow () { |
绑定事件
1 | //当app加载完即启用回调函数 |
创建页面
index.html
1 |
|
list.html
1 |
|
electron页面之间的消息传递
index.js
1 | const { |
main.js添加事件监听 open-list-window事件
1 | //子窗口 |
list.js添加事件监听 hello事件
1 | //子窗口发送消息给主进程 |
main.js添加代码
1 | ipcMain.on('hello', (event, arg) => { |
控制台最后打印出i am 子窗口。
electron展望
electron主进程可以执行node的exec模块,调用系统命令,可以通过web页面构建良好的用户交互体验,通过点击按钮,执行一些系统命令。
比如: 建造一个项目, 利用localstorage去记录文件,选择项目文件,复制改文件到app中的source中,安装依赖,执行app里面的打包脚本,最后输出到文件目录中dist处。可以构建一个类似weflow的打包桌面应用。
目前正在进行中,敬请期待。