electron提供ipcRender和ipcMain进行主进程和渲染进程进行通信
package.json
{
...
"dependencies": {
"vue": "^2.6.11",
"vue-router": "^3.2.0",
"vuex": "^3.4.0"
},
"devDependencies": {
"electron": "^11.5.0",
"electron-builder": "^22.10.4",
"electron-devtools-installer": "^3.1.0",
"electron-prebuilt": "^1.4.13"
}
}
主进程发送消息
...
var mainWindow = new BrowserWindow({
width: 1280,
height: 750,
webPreferences: {
contextIsolation: false,
enableRemoteModule: true,
nodeIntegration: true
}
})
var data1 = '123'
var data2 = '456'
mainWindow.webContents.send('db_link_history', data1, data2)
...
渲染进程接收主进程的消息
const { ipcRenderer } = window.require('electron')
...
ipcRenderer.on('db_link_history', async (event, ...args) => {
var data1 = args[0] // data1 = '123'
var data2 = args[1] // data2 = '456'
})
...
渲染进程发送消息
const { ipcRenderer } = window.require('electron')
...
var data1 = '123'
var data2 = '456'
ipcRenderer.invoke('link_create', data1, data2)
...
主进程接收渲染进程消息
const { ipcMain} = window.require('electron')
...
ipcMain.handle('link_create', async (event, ...args) => {
var data1= args[0] // data1 = '123'
var data2= args[1] // data2 = '456'
})
...