electron中html页面之间通信问题

electron中处理不同html页面中的通信问题主要是通过主进程做一个桥接作用,来完成通信。

首先在main.js中引入        const ipc = require('electron').ipcMain;   

其他页面中对应的js文件中引入      const ipc = require('electron').ipcRenderer;

(文件不能交换,主进程与渲染进程的差别)

然后可以使用 ipc.on(事件名称,响应事件function); 来监听事件,

使用ipc.send(事件名称) 来发送事件。 (注意响应事件的注册要在发送事件的前面噢)

比如:

ipc.on("hereyoua",function(event,data){ //如果没有数据需要传,可以不写参数

console.log(data);

})

ipc.send("hereyoua",data);  //后面跟着的data就是自己想传的数据,不想传不写就可以了

这样就简单完成了事件的响应与发送。(注意这种只适应在同一个html页面中噢)

不同页面中的html交互,需要把数据传到主进程中,再由主进程传出来,即A页面——main.js——B页面

A页面发送数据,请求刷新B页面

ipc.send("refreshB",data);

main.js接收数据,再发送数据给B页面

ipc.on("refreshB",function(event,data){

     winB.webContents.send('AwantrefreshYou',data); //winB就是B页面在main.js中注册的窗口名

})

B页面接收main.js发出来的信息并进行相应操作

ipc.on('AwantrefreshYou',function(event,data){

//你想要进行的操作

})

这样就完成了两个页面之间的交互。event.sender.send也是发送数据的,但是监听的只有当前渲染的页面,对于两个不同html页面之间的交互是存在问题的。 

窗口名.webContents.send(事件名称,数据);  这种方式发送数据,就是发送到对应的监听窗口

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • [转载自http://get.ftqq.com/7870.get] <link rel="icon" type="...
    起航者de风景阅读 4,576评论 0 2
  • Electron桌面应用中有两个进程,分别是Main主进程和Renderer渲染进程。两个进程间有多种方法进行通信...
    许小花花阅读 23,643评论 1 5
  • https://nodejs.org/api/documentation.html 工具模块 Assert 测试 ...
    KeKeMars阅读 6,631评论 0 6
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 29,074评论 1 45
  • 每一个家庭,都希望孩子将来能有一番作为。孩子还小的时候,家长希望孩子的成绩在班里能名列前茅,并以此为荣。孩子有出色...
    姿一姿阅读 120评论 0 1

友情链接更多精彩内容