在Electron中使用IPC广播实现主进程和渲染进程的通信
- 要实现一个主页面和子页面来回跳转的功能,试图使用
mainWindow.loadFIle()
来加载子页面。但是这是主进程才能进行的操作,于是需要在渲染进程里当需要跳转的时候就广播出一个信号,当主进程监听到这个信号,就开始loadFile()
。
代码实现
- 在主进程中和渲染进程中加入
ipcMain
和ipcRenderer
。- 在
main.js
中1
var {ipcMain} = require('electron')
- 在
index.js
和dataset.js
中1
var {ipcRenderer} = require('electron')
- 在
- 在渲染进程中定义每次返回,跳转时需要发出信号的函数。
- 在
index.js
中1
2
3function newPage(){
ipcRenderer.send('openDatasetPage');
} - 在
dataset.js
中1
2
3function backToMain(){
ipcRenderer.send('comeBackToMain')
}
- 在
- 在主进程中定义接收到信号之后的行为。
- 在
main.js
中1
2
3
4
5
6
7ipcMain.on('openDatasetPage', ()=>{
mainWindow.loadFile('./dataset.html');
})
ipcMain.on('comeBackToMain', ()=>{
mainWindow.loadFile('./index.html')
})
- 在
- 在HTML文件中把按钮和功能联系起来。
- 在
index.html
中1
2
3<a class="more" href="#" onclick="showWindow()">
更多...
</a> - 在
dataset.html
中1
2
3<a href="#" onclick="backToMain()" class="backButton">
<img src="image/返回.png" class="backImage" />
</a>
- 在
在Electron中使用IPC广播实现主进程和渲染进程的通信
https://heyewuyue1.github.io/2021/10/18/ipc/