通过ipcMainipcRenderer模块允许主进程与页面(渲染进程)间发送与接收异步,或同步的消息

异步

渲染进程:

const ipc = require('electron').ipcRenderer

// ipc向主线程tag为msg的channel发送消息 'A'
ipc.send('msg', 'A')

// ipc监听tag为msg的channel消息
ipc.on('msg', (event, arg) => {
    console.log(`异步消息回复: ${arg}`) // 'B'
})

主进程:

const electron = require('electron'),
      ipc = electron.ipcMain

// ipc监听tag为msg的channel消息,收到消息后回复 'B'
ipc.on('msg', (event, arg) => {
    console.log(arg) // 'A'
    event.sender.send('msg', 'B')
})

同步

渲染进程:

const ipc = require('electron').ipcRenderer

// 采用同步的形式向tag为msg的channel发送消息'A',并保存在变量message中
let message = ipc.sendSync('msg', 'A')
console.log(message) // 'B'

主进程:

const electron = require('electron'),
      ipc = electron.ipcMain

// ipc监听tag为msg的channel消息,收到消息后采用同步的形式回复 'B'
ipc.on('msg', (event, arg) => {
    console.log(arg) // 'A'
    event.returnValue = 'B'
})

参考文档

ipcMain
ipcRenderer
使用 Electron 在两个进程 (主进程和渲染进程) 之间进行通讯
Electron 主进程和渲染进程互相通信

Last modification:October 28, 2019
If you think my article is useful to you, please feel free to appreciate