渲染进程ipcRenderer.js

const {ipcRenderer}=require('electron')
window.onload=()=>{const sendMsgDom=document.querySelector('#sendMsg')// 1.1 渲染进程给主进程发送消息sendMsgDom.onclick=()=>{console.log('ipcRender')ipcRenderer.send('sendMsg','this is renderer msg')}// 2.1 渲染进程给主进程发送消息const sendMsgReply=document.querySelector('#sendMsgReply')sendMsgReply.onclick=()=>{console.log('ipcRender')ipcRenderer.send('sendMsgReply','this is sendMsgReply in renderer')}// 2.3监听主进程的反馈 ipcRenderer.on('replyRenderer',(e,data)=>{console.log(data)})// 3.1 渲染进程给主进程发送消息(同步)const sendMsgSync=document.querySelector('#sendMsgSync')sendMsgSync.onclick=()=>{console.log('sendMsgSync')let reply=ipcRenderer.sendSync('sendMsgSync','this is sendMsgSync')// 接收主进程的反馈信息console.log(reply)}
}

主进程ipcMain.js

const {ipcMain}=require('electron')// 1.2主进程接收渲染进程发送的消息
ipcMain.on('sendMsg',(e,data)=>{console.log(data)console.log(e)
})// 2.2 主进程接收渲染进程发送的消息,并向渲染进程反馈消息
ipcMain.on('sendMsgReply',(e,data)=>{console.log('sendMsgReply')e.sender.send('replyRenderer','收到了消息')
})// 3.2 接收渲染进程的同步消息
ipcMain.on('sendMsgSync',(e,data)=>{console.log('sendMsgSync')e.returnValue='我是主进程,同步消息已经收到'
})

主进程中主动向渲染进程广播消息

  • 主进程中的menu.js模块
// Menu是主进程模块
const {Menu,BrowserWindow}=require('electron');
// 创建菜单模板
// https://www.electronjs.org/zh/docs/latest/api/menu-item
const menuTemplate=[{label:'文件',submenu:[{label:'触发渲染进程里面的方法',click:()=>{console.log('主进程主动触发渲染进程中的方法')// 4.1 主进程向渲染进程广播消息BrowserWindow.getFocusedWindow().webContents.send('renderMsg','触发渲染进程中的方法')}},{label:'新建',accelerator:'ctrl+n',//定义快捷键click:()=>{console.log('Ctrl+N')}},{label:'打开'},{label:'保存'}]},{label:'编辑',submenu:[{label:'复制',role:'copy',// accelerator:'ctrl+c',ctrl+c定义复制和系统快捷键冲突,所以无效,可以使用role定义click:()=>{console.log('复制')}},{type:'separator' //分割符},{label:'放大',role:'zoomin',// accelerator:'ctrl+c',ctrl+c定义复制和系统快捷键冲突,所以无效,可以使用role定义click:()=>{console.log('放大')}}]}
]
const menuBuilder=Menu.buildFromTemplate(menuTemplate);
Menu.setApplicationMenu(menuBuilder)
  • 渲染进程监听模块
const {ipcRenderer}=require('electron')
window.onload=()=>{// 4.2 监听主进程主动menus.js发送的消息ipcRenderer.on('renderMsg',(e,data)=>{console.log(data)})
}

electron主进程和渲染进程的通讯相关推荐

  1. electron 主进程与渲染进程通讯

    主进程和渲染器进程 Electron 有两种进程:主进程和渲染进程. 主进程通过创建 BrowserWindow 实例来创建 网页. 每一个 BrowserWindow 实例在其渲染过程中运行网页, ...

  2. electron 主进程向渲染进程发送事件,渲染进程监听事件

    主进程执行: //主进程向渲染进程发送消息win.webContents.send('ping', 'whoooooooh!') 渲染进程监听: <script>let ipcRender ...

  3. Electron中通过ipcMain和ipcRender实现主进程和渲染进程之间的相互通信

    场景 用HTML和CSS和JS构建跨平台桌面应用程序的开源库Electron的介绍以及搭建HelloWorld: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/a ...

  4. Electron主进程和渲染进程之间通信

    Electron发送和接收数据用到的是 ipcMain 和 ipcRenderer 两个对象: ipcMain 是用在主进程中的: ipcRenderer 是用在渲染进程中的. 主进程用win.web ...

  5. Electron:主进程、渲染进程以及通信

    文章目录 应用进程 主进程 渲染进程 进程通信 渲染进程访问主进程 主进程访问渲染进程 应用进程 Electron应用程序区分主进程和渲染进程. 主进程 之前我们创建的引用中,electron.js中 ...

  6. electron 主进程和渲染进程的通信

    主进程给渲染进程发送消息,得用到ipcMain和ipcRenderer,流程和vue的父子通信很像 1,渲染进程给主进程通信(异步) html里面定义一个按钮,并加载渲染进程 <button i ...

  7. 第八节 Electron主进程和渲染进程之间的通信

    系列文章目录 第一节 electron 介绍 第二节 创建electron项目并启动 第三节 Electron运行流程 . 主进程渲染进程并使用nodejs 第四节 Electron 调用H5事件结合 ...

  8. Electron 主进程和渲染进程互相通信

    对于 渲染进程 之间的通信,可见另一篇总结:Electron 渲染进程之间的通信_王俊的博客-CSDN博客_electron渲染进程之间通信 下面总结一下主进程和渲染进程之间的通信. 说明: 自主到从 ...

  9. Electron 主进程、渲染进程及进程间的通信

    简介 Electron是由GIthub开发,用HTML.CSS.JS来构建跨平台桌面应用程序的一个开源库.Electron将Chromium和Nodejs合并到同一个运行时环境中,并将其打包为Mac. ...

最新文章

  1. Facebook :AI 年度总结来啦
  2. 再见切赫!斯坦福桥“坦克兵”不止是蓝军传奇
  3. 国内外知名光端机品牌大全
  4. Socket的send函数在执行时报EAGAIN的错误
  5. c++重载++运算符_C ++运算符重载| 查找输出程序| 套装3
  6. Navicat PatchNavicat
  7. ftp 200 227 451linux,FTP无法链接
  8. 五个免费国外流量统计工具
  9. 项目中的常量是放在接口里还是放在类里呢?
  10. linux 蓝牙管理软件,Blueman - Ubuntu的蓝牙管理器
  11. Node.js的安装下载和运行JS代码和常用命令和按键
  12. Javascript程序运行环境安装
  13. 为什么很多公司不要培训出来的Java程序员?
  14. 俞军推荐:一份完整的产品经理职业成长书单
  15. 基于PYTHON的艺术签名设置
  16. 【大数据分析】未开先火|北京环球影城网络传播热度洞察
  17. Windows Server 2008 R2 桌面化
  18. 从字节码指令分析i=i++(i是long类型时)
  19. 快速查询单号物流,导出详细信息生成表格
  20. [快讯]QCon北京2014 slides下载、视频发布排期通知

热门文章

  1. 在vc中使用xtremetoolkit界面库-----安装及环境配置
  2. CUDA学习(二)-NVCC的编译过程及命令
  3. OpenCV4萌新之路——详解图像读取函数 “imread”
  4. Ubuntu16.04 + Cuda-9.0 + Cudnn-7.1.4 + TensorFlow1.8(极其简单)
  5. CNN(Convolutional Neural Network)
  6. 使用ES6,Pt更好JavaScript。 III:酷收藏和闪烁的弦
  7. 不会查看GIT版本历史?快收藏这个工具
  8. 三.N32G003 系统性能测试--dhrystone (IAR环境)
  9. linux-查看cpu核数
  10. 告别百度网盘,安装自己的专属网盘——Cloudreve,不限制下载速度!