在Electron中使用IPC广播实现主进程和渲染进程的通信

  • 要实现一个主页面和子页面来回跳转的功能,试图使用mainWindow.loadFIle()来加载子页面。但是这是主进程才能进行的操作,于是需要在渲染进程里当需要跳转的时候就广播出一个信号,当主进程监听到这个信号,就开始loadFile()

代码实现

  1. 在主进程中和渲染进程中加入ipcMainipcRenderer
    • main.js
      1
      var {ipcMain} = require('electron')
    • index.jsdataset.js
      1
      var {ipcRenderer} = require('electron')
  2. 在渲染进程中定义每次返回,跳转时需要发出信号的函数。
    • index.js
      1
      2
      3
      function newPage(){
      ipcRenderer.send('openDatasetPage');
      }
    • dataset.js
      1
      2
      3
      function backToMain(){
      ipcRenderer.send('comeBackToMain')
      }
  3. 在主进程中定义接收到信号之后的行为。
    • main.js
      1
      2
      3
      4
      5
      6
      7
      ipcMain.on('openDatasetPage', ()=>{
      mainWindow.loadFile('./dataset.html');
      })

      ipcMain.on('comeBackToMain', ()=>{
      mainWindow.loadFile('./index.html')
      })
  4. 在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/
作者
何夜舞月
发布于
2021年10月18日
许可协议