首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Electron中实现父窗口与子窗口之间的数据传输

如何在Electron中实现父窗口与子窗口之间的数据传输
EN

Stack Overflow用户
提问于 2018-08-10 23:26:31
回答 1查看 4.8K关注 0票数 1

因此,我正在使用Electron框架构建一个应用程序,并尝试在父窗口的单击事件上打开子窗口时,在父窗口和子窗口之间传递一些数据。我使用ipcMain和ipcRenderer将消息从父渲染器进程传递到主进程,再传递给子渲染器进程。我可以跟踪到达主进程的数据,但是它不会被发送到最终的渲染器。我真的不太确定为什么,但我的直觉是,这与从main打开子窗口的事件与从main通过.webContents.send()发送数据的事件的协调有关。

相关代码:

将数据从父节点发送到主节点

代码语言:javascript
运行
复制
listItem.click(function(){
    ipcRenderer.send('synchronous-message',feedUrl);
})

在main中侦听数据,初始化并打开子窗口,然后将数据发送给子窗口

代码语言:javascript
运行
复制
let winPodInfo;
ipcMain.on('synchronous-message',(event,arg)=>{

winPodInfo = new BrowserWindow({
   width:500,
   parent:mainWindow,
   modal:true,
   frame:false
});

winPodInfo.loadURL(`file://${__dirname}/podcastInfo.html`);
winPodInfo.once('show',function(){
   winPodInfo.webContents.send('synchronous-message',arg);
})
winPodInfo.once('ready-to-show', () => {
   winPodInfo.show();
});
})

在子渲染器中检查消息

代码语言:javascript
运行
复制
    <script>
    const electron = require('electron');   
    const {ipcRenderer} = electron;

    ipcRenderer.on('synchronous-message',(event,arg)=>{
        console.log(arg);
    })
    </script>

我知道这个问题以前在这里被问过,我也看过其他的例子,但到目前为止它们还没有起作用。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51789711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档