当前位置: 首页 > 后端技术 > Node.js

Electron渲染进程之间的通信

时间:2023-04-03 18:18:29 Node.js

Cookie的Electron踩坑合集。主进程和渲染进程之间的通信,使用IPC比较方便。但是渲染进程之间呢?哈哈,我这个码农好像又踩坑了。方案一:使用全局共享属性://在主进程中.global.sharedObject={someProperty:'defaultvalue'}//在页面1.require('electron').remote.getGlobal('sharedObject').someProperty='newvalue'//page2.console.log(require('electron').remote.getGlobal('sharedObject').someProperty)但是没有事件机制,没有真正的通信功能。当然,说到这里,我就想到了Node中的全局对象。https://electron.atom.io/docs...方案二使用主进程进行消息传递:这个方案还是很不错的。//在主进程中1ipcRenderer.send('ping-event',(event,arg)=>{//做某事})//2ipcRenderer.on('pong-event',(event,arg)=>{//做某事})方案3使用远程接口直接获取渲染进程发送消息://rendererprocess//getWindowbyIDremote.BrowserWindow.fromId(winId).webContents.send('ping','someThing');有如渲染进程有很多ID有3种方式:第一种:通过global设置获取第一种:主进程创建事件发送信息//主进程win1.webContents.send('distributeIds',{win2Id:win2.id});win2.webContents.send('distributeIds',{win1Id:win1.id});第三种:可以写一个文件什么的,方法多种多样,参考:https://github。com/electron/e....https://github.com/electron/e...https://juejin.im/entry/58869...要知道的API:https://electron.atom.io/文档...https://electron.atom.io/docs...