摘要:对于主进程和渲染进程之间的通信,使用是很方便的。但是渲染进程之间呢哈哈,我这个码农看来又踩到一个坑了。方案一使用全局共享属性但不具备事件机制,没有实质的通信功能。方案二利用主进程做消息中转此方案还是很好的。
菜鸟的 Electron 踩坑集锦。
对于 主进程和渲染进程之间的通信,使用 IPC 是很方便的。但是渲染进程之间呢? 哈哈,我这个码农看来又踩到一个坑了。
方案一:使用全局共享属性:
// In the main process. global.sharedObject = { someProperty: "default value" } // In page 1. require("electron").remote.getGlobal("sharedObject").someProperty = "new value" // In page 2. console.log(require("electron").remote.getGlobal("sharedObject").someProperty)
但不具备事件机制,没有实质的通信功能。 当然说到这里就想起了 Node 中的全局对象了。
https://electron.atom.io/docs...
方案二利用主进程做消息中转: 此方案还是很好的。
// In the main process. ipcMain.on("ping-event", (event, arg) => { yourWindow.webContents.send("pong-event", "something"); } // In renderer process // 1 ipcRenderer.send("ping-event", (event, arg) => { // do something } ) // 2 ipcRenderer.on("pong-event", (event, arg) => { // do something } )方案三
利用 remote 接口直接获取渲染进程发送消息:
// renderer process // get Window by ID remote.BrowserWindow.fromId(winId).webContents.send("ping", "someThing");
渲染进程获取 ID 就有多种方法了:
第一种: 通过 global 设置和获取
第一种是: 主进程创建事件,发送信息
// main process 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/docs...
https://electron.atom.io/docs...
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/82803.html
摘要:主进程在里,运行里脚本的进程被称为主进程。渲染进程由于使用来展示页面,所以的多进程结构也被充分利用。每个的页面都在运行着自己的进程,这样的进程我们称之为渲染进程。在一般浏览器中,网页通常会在沙盒环境下运行,并且不允许访问原生资源。 主进程 在 Electron 里,运行 package.json 里 main 脚本的进程被称为主进程。在主进程运行的脚本可以以创建 web 页面的形式展示...
摘要:为了能使不同的进程互相访问资源并进行协调工作,才有了进程间通信。此时,就需要与渲染进程通信了。发消息,渲染进程收消息内部使用来发消息。 作者:钟离,酷家乐PC客户端负责人原文地址:https://webfe.kujiale.com/electron-ku-jia-le-ke-hu-duan-kai-fa-shi-jian-fen-xiang-jin-cheng-tong-xin/酷家...
摘要:为了能使不同的进程互相访问资源并进行协调工作,才有了进程间通信。此时,就需要与渲染进程通信了。发消息,渲染进程收消息内部使用来发消息。 作者:钟离,酷家乐PC客户端负责人原文地址:https://webfe.kujiale.com/electron-ku-jia-le-ke-hu-duan-kai-fa-shi-jian-fen-xiang-jin-cheng-tong-xin/酷家...
摘要:为了能使不同的进程互相访问资源并进行协调工作,才有了进程间通信。此时,就需要与渲染进程通信了。发消息,渲染进程收消息内部使用来发消息。 作者:钟离,酷家乐PC客户端负责人原文地址:https://webfe.kujiale.com/electron-ku-jia-le-ke-hu-duan-kai-fa-shi-jian-fen-xiang-jin-cheng-tong-xin/酷家...
摘要:当一个实例被销毁后,相应的渲染进程也会被终止。之所以命名为,主要是为了与主进程这个概念对应。部分在事件触发后才能使用。当全部窗口关闭时退出。主进程接收到消息并处理之后,会返回处理结果。 简介 Electron 是一个可以使用 Web 技术如 JavaScript、HTML 和 CSS 来创建跨平台原生桌面应用的框架。借助 Electron,我们可以使用纯 JavaScript 来调用丰...
阅读 952·2021-11-24 09:39
阅读 2687·2021-09-26 09:55
阅读 14154·2021-08-23 09:47
阅读 3576·2019-08-30 15:52
阅读 847·2019-08-29 13:49
阅读 996·2019-08-23 18:00
阅读 842·2019-08-23 16:42
阅读 1633·2019-08-23 14:28