我无法使用ipc将数据从一个渲染器发送到另一个渲染器。我想要实现的目标如下:将变量从index.js发送到cves.js。我保留console.log输出以进行调试。我收到2条消息-“ index.js发送update-target-os msg。”和“ main.js接收update-target-os msg并发送targetOS。”。但是我没有得到“ cves.js接收targetOS”。screen capture for reference
我的代码文件在这里:https://github.com/ohmtrivedi/electronProject。
希望有人可以帮助我解决这个问题。刚学了电子,并尝试构建一个用于学习目的的应用程序。
答案 0 :(得分:0)
我查看了您的代码,对我来说,问题似乎是here,您正在通过targetOS
的{{1}}发送mainWindow
频道
webContents
是文件mainWindow
的{{1}}对象;但您想在BrowserWindow
的{{1}}对象上接收它。
一种达到您要完成的目标的方法是更新代码,以在{{1}上为src/index.html
创建BrowserWindow
对象(例如src/cves.html
) }(收到BrowserWindow
频道时),而不是在cvesWindow
的{{1}}方法中创建频道。
然后在src/cves.html
的{{1}}部分中,将收到的值设置为main.js
变量,例如update-target-os
。
然后,在您的cell_cves.addEventListener
文件中,您可能会有类似的内容:
index.js
您可以在DOM内容加载后执行它。这将通知主进程您的CVES main.js
已加载。然后,update-target-os
然后可以在以下事件上发送值:
main.js
cves osGuess
收到了它。
通过上面的逻辑更新,我能够获得要显示在cves.js
上 ipcRenderer.send('cves-loaded', true);
元素上的值。
可能有更多方法可以完成此操作,但是如果您只需要打开一个列出其他信息的对话框,则建议使用Single Page Application方法。