electron 改变窗体大小

相关连接:
electron-vue 集成 element-ui
在开发 electron 的时候遇到了须要在 render 中修改 BrowserWindow 窗口大小的方式,通过一番尝试,有两种方法实现:vue

  1. 经过 ipcRendereripcMain 的通信来实现
  2. 经过 renderremote 模块来实现

ipcRenderer 和 ipcMain 实现

实现原理是 render 进程经过 ipcRendereripcMain 进行通信以通知 main 进程操做窗体操做。 element-ui

render 引入 ipcRendererapi

let {ipcRenderer} = require('electron')

发送同步消息给 main 进程electron

ipcRenderer.sendSync('synchronous-message','logined')

main 中监听同步消息,并处理 logined 消息操做post

ipcMain.on('synchronous-message', (event, arg) => {
  if (arg === 'logined') {
    mainWindow.resize(1000, 1000)
  }
})

remote 方式是实现

引入 remote 模块ui

const { remote } = require('electron')

调用 remote 方法中的 getCurrentWindow 获取当前窗体对象,而后进行修改窗体属性code

remote.getCurrentWindow().setSize(1000, 1000)

总结

上面实现方式能够看出 remote 方式实际上是比较简单和方便的,我我的更倾向于用第二种方式实现此功能。其实在 remote 模块的底层实现也是经过发布同步消息的方式来实现与 main 进程通信的,本质上和咱们实现的方式一是同样的,既然 eletron 已经作了一个很好的封装,彻底也没有必要舍近求远 直接用 remote 方式实现是一个比较优雅的方式。对象

参考连接

electron remote
electron ipcMain
electron ipcRenderer进程

相关文章
相关标签/搜索