electron主进程是后台运行,对应main.js,渲染进程是前端看到的,对应index.html。两个进程之间的通信首选ipc方式。
异步通信
异步通信,在发送消息之后,不会阻止同一进程中程序的继续运行。此示例渲染进程发送异步消息 “ping” 到主进程, 然后主进程回答 “pong”。
在渲染进程中
// 引入ipcRenderer const ipcRenderer = require('electron').ipcRenderer // 发送标识为asynchronous-message的消息'ping' ipcRenderer.send('asynchronous-message', 'ping') // 接收标识为asynchronous-reply的消息 ipcRenderer.on('asynchronous-reply', function (event, arg) { console.log(arg) })
在主进程中
// 接收来自标识为asynchronous-message的消息 ipcMain.on('asynchronous-message', function (event, arg) { // 返回标识为asynchronous-reply的消息'pong' event.sender.send('asynchronous-reply', 'pong') })
同步通信
同步通信,程序在完成任务之前会阻止同一进程中的操作。
在渲染进程
// 引入ipcRenderer const ipcRenderer = require('electron').ipcRenderer // 发送同步消息,返回给变量replay,在等待主进程返回中,会阻止其他操作 const reply = ipcRenderer.sendSync('synchronous-message', 'ping') console.log(reply)
在主进程
// 引入ipcMain const ipcMain = require('electron').ipcMain // 接收标识为synchronous-message的消息,然后返回'pong' ipcMain.on('synchronous-message', function (event, arg) { event.returnValue = 'pong' })
electron 中文api说明
https://github.com/demopark/electron-api-demos-Zh_CN