![]() |
1
37
要记住的主要一点是,在Electron中,进程间通信由ipcMain(在主进程中)和IPCRender(在所有创建的窗口中)完成。如下所示:
代码: mainProcess.js:
window1.html:
window1.js:
window2.html:
window2.js:
演示会更好,但我不知道如何构建电子CodeBin应用程序。这张图片给了你一个想法:
享受电子的力量! |
![]() |
2
3
如果您从 渲染器 主窗口的进程,通过使用 window.open() 这避免了通过IPC呼叫进行通信的需要。 See Docs . 例如:
请注意,要使其工作,您需要设置 nativeWindowOpen 初始创建主窗口时的webPreferences选项。
|
![]() |
3
2
我们的项目也有类似的问题。然而,两个浏览器窗口都必须传递JS对象&功能来回。 通过IPC调用提出的解决方案是我们尝试的第一件事,但还不够。当您只需要传递一些小对象时,它工作得很好,但很快就会达到它的极限,因为Electron将序列化通过IPC调用传递的所有数据。
我们前进的方式是使用
window.opener
功能。我们用电子产生一个
目前我无法分享完整的示例,但如果有时间,我将创建一个github repo。 一些已经可以帮助您前进的事情:
仅供参考:您也可以直接在浏览器中使用此技术,但它们仍然不允许您在窗口中移动 |
![]() |
4
0
根据您的要求,可以创建SharedWorker,作为在windows之间传输消息端口的代理。注意:SharedWorker要求所有窗口从同一源运行(可能不满足您的要求)。例如,在主窗口中创建一个MessageChannel(它提供了两个端口),然后通过SharedWorker将端口1传输到一个窗口,将端口2传输到另一个窗口。现在,两个窗口可以使用postMessage通过端口直接通信。作为一种奖励,postMessage还支持可转让。我一直在玩弄这个想法,但还没有完全开发这个库,但你可以从这里的一些正在进行的工作中得到这个想法: https://github.com/lneir/electron-direct-comm |
![]() |
5
0
每当我们讨论电子应用程序中从一个窗口到另一个窗口的通信时,您总是想考虑IPC系统,进程间通信。
提交表单后,您可以从输入中提取文本,并向电子应用程序发送事件。
然后,电子应用程序将触发自己的事件,并将事件发送到
您可以在二级窗口中仅使用普通JavaScript启动。html文件如下:
因此,上面假设您正在使用您试图提交的表单。 |
![]() |
Softly · 单选按钮未按预期取值 1 年前 |
|
SlickRed · 我无法使用JS关注HTML元素 1 年前 |
![]() |
assembler · Nextjs没有处理发布请求 1 年前 |
|
BADRUM · 执行两个获取功能后,如何导航回页面? 1 年前 |
![]() |
Toniq · javascript为php保存多维数组 1 年前 |