码迷,mamicode.com
首页 > 其他好文 > 详细

如何实现electron多页面间通信

时间:2018-11-16 15:12:06      阅读:980      评论:0      收藏:0      [点我收藏+]

标签:rgb   png   com   nbsp   pcm   alt   解决方案   info   code   

如何实现electron多页面间通信

1,业务需求:

总共有两个页面,页面A显示数据,页面B处理数据,主线程Main

2,实现的技术方案:

在主线程中打开页面A和B,B页面不进行显示,主要负责处理从A页面发送到主线程Main上的数据,然后B将数据处理完成之后,再次将数据送到主线程Main上,主线程Main将数据再将数据转发到页面A上,页面A进行数据展示。

注意:在electron中页面A和页面B无法进行通信。必须依托于上述解决方案。

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)
        })
    })
});

 

页面A

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)
});

 

页面B

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);//或者使用此方法
});

 

 

如何实现electron多页面间通信

标签:rgb   png   com   nbsp   pcm   alt   解决方案   info   code   

原文地址:https://www.cnblogs.com/DonaHero/p/9969026.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!