Electron进程间通讯【一】主进程与渲染进程通信

Electron进程间通讯通信有3种情况:主进程与渲染进程之间的通讯、主进程与主进程之间的通讯、渲染进程与渲染进程之间的通讯。
本教程讲解Electron进程间通讯的第1种情况--主进程与渲染进程之间的通讯,我将自己在项目中用过的4种方法教给需要的同学。
另外,为了方便各位同学理解,我专门为本教程录制了视频。

1、通过ipcMain和ipcRenderer

  • 01

    首先,ipcRenderer发起通讯:上报 渲染进程Renderer Process通过“ipcRenderer.send(flag)”向主进程Main Process发起通讯,其中,“flag”是本次通讯的唯一标识符,该过程称为“上报”。

  • 02

    接着,ipcMain接收并反馈:指示 主进程Main Process通过“ipcMain.on(flag, ()=>function(){})”接收来自渲染进程Renderer Process的上报,并依据相应算法给出反馈,该过程称为“指示”。

  • 03

    最后,ipcRenderer处理ipcMain的指示。 渲染进程再通过ipcRenderer.on(anotherFlag)得到主进程的指示,然后依据相应算法处理该指示。

    2、渲染进程使用remote

    • 01

      渲染进程通过remote直接使用主进程模块 正常情况下由于沙盒机制,渲染进程不可以使用主进程的模块,但是在渲染进程中引入remote后即可直接使用主进程的模块,该方法其实是第一种方法的简化。

      3、主进程使用webContents.send

      • 01

        主进程使用webContent.send向渲染进程发起通讯 这种用法不需要渲染进程率先发起通讯,而是由主进程主动发起通讯。 在项目中,该用法比较常见,可以很方便地实现主进程主动控制渲染进程的行为。

        4、主进程访问渲染进程

        • 01

          主进程通过webContents.executeJavascript访问渲染进程 该方法是第2种方法--渲染进程通过remote直接使用主进程模块的反向操作。 其用法是“webContents.executeJavaScript(codeSentence[, userGesture, callback])”。

        (0)

        相关推荐