如何實現electron多頁面間通訊

如何實現electron多頁面間通訊

1,業務需求:

總共有兩個頁面,頁面A顯示數據,頁面B處理數據,主線程Mainelectron

2,實現的技術方案:

在主線程中打開頁面A和B,B頁面不進行顯示,主要負責處理從A頁面發送到主線程Main上的數據,而後B將數據處理完成以後,再次將數據送到主線程Main上,主線程Main將數據再將數據轉發到頁面A上,頁面A進行數據展現。ui

注意:在electron中頁面A和頁面B沒法進行通訊。必須依託於上述解決方案。spa

3,多頁面消息傳遞流轉圖

 

4,僞代碼實現

主線程線程

const {ipcMain} = require('electron')
ipcMain.on('send-message-A', (event, arg) => {
    ipcMain.on('send-message-B',(eventB,argB)=>{
        eventB.sender.send('send-message-B-reply', arg)
        ipcMain.on("send-message-B-dealData",(ev,ar)=>{
            event.sender.send('send-message-A-dealData', ar)
        })
    })
});

 

頁面Acode

const {ipcRenderer} = require('electron')

ipcRenderer.send('send-message-A', 'someData')
ipcRenderer.on('send-message-A-dealData', (event, arg) => {
    //get arg and do something
    console.log(arg)
});

 

頁面Bblog

const {ipcRenderer} = require('electron')

ipcRenderer.send('send-message-B', 'someData');
ipcRenderer.on('send-message-B-reply', (event, arg) => {
    //get arg and do something
    //dealData
    ipcRenderer.send('send-message-B-dealData', arg);
    // event.sender.send('send-message-B-dealData', arg);//或者使用此方法
});
相關文章
相關標籤/搜索