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


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

主進程:

//主進程 
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'; })

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM