本文介绍:开发概要

如何使用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. app.on('ready', () => {
  4. win = new BrowserWindow({width: 800, height: 600})
  5. win.loadURL('https://github.com')
  6. })

渲染进程和传统的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>

如果想运行应用,请参考 运行应用程序.

解构任务

从0.37版本起,你可以使用解构赋值更简便的使用内置模块。

  1. const {app, BrowserWindow} = require('electron')
  2. let win
  3. app.on('ready', () => {
  4. win = new BrowserWindow()
  5. win.loadURL('https://github.com')
  6. })

只需把模块引入( require)并解构至 electron中即可使用:

  1. const electron = require('electron')
  2. const {app, BrowserWindow} = electron
  3. let win
  4. app.on('ready', () => {
  5. win = new BrowserWindow()
  6. win.loadURL('https://github.com')
  7. })

上面等同下面的代码:

  1. const electron = require('electron')
  2. const app = electron.app
  3. const BrowserWindow = electron.BrowserWindow
  4. let win
  5. app.on('ready', () => {
  6. win = new BrowserWindow()
  7. win.loadURL('https://github.com')
  8. })