Electron 主進程與渲染進程之間的通 信(同步通訊、異步通訊)

有時候咱們想在渲染進程中經過一個事件去執行主進程裏面的方法。或者在渲染進程中通知
主進程處理事件,主進程處理完成後廣播一個事件讓渲染進程去處理一些事情。這個時候就
用到了主進程和渲染進程之間的相互通訊。
Electron 主進程,和渲染進程的通訊主要用到兩個模塊:ipcMain 和 ipcRenderer
ipcMain:當在主進程中使用時,它處理從渲染器進程(網頁)發送出來的異步和同步信息,
固然也有可能從主進程向渲染進程發送消息。
ipcRenderer: 使用它提供的一些方法從渲染進程 (web 頁面) 發送同步或異步的消息到主
進程。 也能夠接收主進程回覆的消息。
場景 1:渲染進程給主進程發送異步消息:
//渲染進程
 const { ipcRenderer } = require('electron') i
pcRenderer.send('msg',{name:'張三'}); //異步

主進程:web

//主進程 
const { ipcMain } = require('electron'); 
ipcMain.on(''msg'',(event,arg) => { 

})
場景 2:渲染進程給主進程發送異步消息,主進程接收到異步消息之後通知渲染進程
//渲染進程 
const { ipcRenderer } = require('electron') 
ipcRenderer.send('msg',{name:'張三'}); //異步
//主進程
const { ipcMain } = require('electron'); 
ipcMain.on(''msg'',(event,arg) => { event.sender.send('reply', 'pong'); })
//渲染進程
 const { ipcRenderer } = require('electron')
 ipcRenderer.on('reply', function(event, arg) { 
    console.log(arg); // prints "pong" }
);    
場景 3:渲染進程給主進程發送同步消息:
//渲染進程 
const { ipcRenderer } = require('electron') 
const msg = ipcRenderer.sendSync('msg-a'); 
console.log(msg)
//主進程 
ipcMain.on('msg-a',(event)=> { event.returnValue = 'hello'; })
相關文章
相關標籤/搜索