为了账号安全,请及时绑定邮箱和手机立即绑定

electron主进程通信渲染进程

标签:
前端工具

可以先去看看之前的https://blog.csdn.net/qq_40816649/article/details/103123143
主进程即electron的main.js。
渲染进程即BrowserWindow对象新建的。
定义一个js文件这里就叫renderer吧,在全局定义一个electron对象用来进行与html进行订阅事件通信。

global.electron = require('electron');

在BrowserWindow中通过node的path插件取到并传入这个js文件,这样在exe中的window上就有electron这个对象了。

new BrowserWindow(
  width: 750,
  height: 220,//712
  webPreferences: {
    javascript: true,
    plugins: true,
    nodeIntegration: true, // 是否集成 Nodejs
    webSecurity: false,
    preload: path.join(__dirname, './renderer.js'),//设置与index.html通信
  });

主进程收发订阅事件
接收:引入electron中的ipcMain通过这个api进行接收渲染进程发送的事件并进行相应的处理
发送:需要找到我们定义的这个渲染进程这里我们定义的渲染进程是win所以拿这个名字来进行发送

const {
  app,
  BrowserWindow,
  ipcMain,
  Menu} = require('electron');

function createWindow() {
  win = new BrowserWindow(windowConfig);
  win.loadURL(`file://${__dirname}/index.html`);
  getDevice()
  Menu.setApplicationMenu(null)//隐藏顶部菜单
  // win.webContents.openDevTools();//开启调试工具
  win.on('close', () => {//回收BrowserWindow对象
    win = null;
  });
  win.on('maximize', (e) => {//窗口最大化
    allowChangeSize = false
  })
  win.on('unmaximize', (e) => {//窗口最小化
    allowChangeSize = true
  })
  ipcMain.on('start', (event, args) => {//接受
    win.webContents.send('isStart')//发送
    connectRTMP(args)
  });
  ipcMain.on('stop', (event, args) => {//接受
    console.log('stop')
    killFluent()
  });
  ipcMain.on('reSize',(e,args) => {//控制window窗口大小
    if (!allowChangeSize) return
    win.setSize(args.width,220 + Number(args.height))
  })
}

app.on('ready', createWindow);

html的发送和接收
直接在window对象上就能取到这个electron对象进行通信

window.electron.ipcRenderer.send("start",this.radioSet)//发送
window.electron.ipcRenderer.on('isStart', (event, message) => {})//接收

对于底层的东西还是要多去了解一下,这个事件订阅是个非常好的设计包括node,webview通信很多地方都用到了事件订阅。


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Web前端工程师
手记
粉丝
6
获赞与收藏
35

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消