美文网首页
electron中html页面之间通信问题

electron中html页面之间通信问题

作者: 将_99cc | 来源:发表于2019-04-10 17:56 被阅读0次

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(事件名称,数据);  这种方式发送数据,就是发送到对应的监听窗口

相关文章

网友评论

      本文标题:electron中html页面之间通信问题

      本文链接:https://www.haomeiwen.com/subject/byeoiqtx.html