从quickstart开始
1 2 3 4
| git clone https://github.com/electron/electron-quick-start cd electron-quick-start npm install npm start
|
可以看到一个简单的electron桌面程序启动了
Electron中分为两类进程,一类是主进程main,另一类是渲染器进程renderer
主进程只有一个,负责对整个应用的管理,包括后台操作,创建GUI,处理GUI和后台交互操作
主进程无法显示窗口,在主进程中调用BrowserWindow模块才能使用不同的窗口,每个窗口调用格子的渲染器进程来讲页面渲染到窗口中
由于在网页里管理原生GUI资源是非常危险而且容易造成资源泄露,所以在网页调用GUI相关API是不允许的,如果要在网页中使用GUI操作,其相对应的渲染进程必须和主进程进行通讯,请求主进程进行相关GUI操作
工程目录
工程目录如下
1 2 3 4
| - index.html - main.js - renderer.js - package.json
|
package.json声明了启动脚本,和进程的入口
1 2 3 4 5 6 7 8
| { // ... "main": "main.js", "scripts": { "start": "electron ." }, // ... }
|
如果没有声明main,Electron会优先加载index.js
main.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 28 29 30 31 32 33
| const {app, BrowserWindow} = require('electron')
let mainWindow
function createWindow () { mainWindow = new BrowserWindow({width: 800, height: 600}) mainWindow.loadFile('index.html') mainWindow.on('closed', function () { mainWindow = null }) }
app.on('ready', createWindow)
app.on('window-all-closed', function () { if (process.platform !== 'darwin') { app.quit() } })
app.on('activate', function () { if (mainWindow === null) { createWindow() } })
|