electron
  • 本文介绍了两个渲染进程之间实现互相通信的一种方式 —— 通过主进程获取另一个渲染进程的 ID 来实现两个渲染进程之间的通信。

1. 视频

2. 查看 electron 官方文档 -> breaking-changes

  • https://www.electronjs.org/zh/docs/latest/breaking-changes#已移除-ipcrenderersendto
    • Electron--文档--引用--重大变更。
    • 这是 Electron 的官方文档,在版本更新中的一些 Breaking Changes 截断式的更新(就是不兼容的重大更新)。
    • 文中提到 v28 版本的更新中提到 ipcRenderer.sendTo() 方法已经被移除了,取而代之的是 MessageChannel。
  • 注意版本
    • 本文介绍的这种通信方式需要依赖 ipcRenderer 模块中的 ipcRenderer.sendTo 方法,这个方法在 Electron 的 v28 版本中已经被丢弃了,如果要使用这种通信方案的话,需要注意 Electron 的版本问题,这种方式在最新版的 Electron 中已经被淘汰了。

3. demos.1 - 通过主进程获取另一个渲染进程的 ID 来实现两个渲染进程之间的通信

package.jsonjson
{
  "name": "get-other-renderer-id-by-main-process",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev": "electron ."
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "electron": "^27.3.4" // [!code highlight]
  }
}
  • 【最终效果】
  • 使用窗口 1 给窗口 2 发消息。
  • 使用窗口 2 给窗口 1 发消息。

Discussions

正在载入评论…