开发概要
如何使用Node.js和Electron API.
所有的Node.js的内置模块都可以完美运用于Electron和第三方Node模块中(包括native modules)。
Electron还为开发本地桌面应用程序提供了一些额外的内置模块。有些仅在主进程中或渲染器进程(网页)中可用,有的则通用于两个进程。
基本规则:GUI模块或者系统底层的模块只能在主进程中使用。
要使用这些模块,你必须熟稔主进程vs渲染进程。
像普通Node.js一样的主进程脚本:
1
const {app, BrowserWindow} = require('electron')
2
let win = null
3
4
app.on('ready', () => {
5
win = new BrowserWindow({width: 800, height: 600})
6
win.loadURL('https://github.com')
7
})
Copied!
渲染进程和传统的web界面一样,除了它具有使用node模块的能力:
1
<!DOCTYPE html>
2
<html>
3
<body>
4
<script>
5
const {app} = require('electron').remote
6
console.log(app.getVersion())
7
</script>
8
</body>
9
</html>
Copied!
如果想运行应用,请参考 运行应用程序.
解构任务
从0.37版本起,你可以使用[解构赋值][destructuring-assignment]更简便的使用内置模块。
1
const {app, BrowserWindow} = require('electron')
2
let win
3
app.on('ready', () => {
4
win = new BrowserWindow()
5
win.loadURL('https://github.com')
6
})
Copied!
只需把模块引入( require
)并解构至 electron
中即可使用:
1
const electron = require('electron')
2
const {app, BrowserWindow} = electron
3
4
let win
5
6
app.on('ready', () => {
7
win = new BrowserWindow()
8
win.loadURL('https://github.com')
9
})
Copied!
上面等同下面的代码:
1
const electron = require('electron')
2
const app = electron.app
3
const BrowserWindow = electron.BrowserWindow
4
let win
5
6
app.on('ready', () => {
7
win = new BrowserWindow()
8
win.loadURL('https://github.com')
9
})
Copied!
[destructuring-assignment]: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment