相关连接:
electron-vue 集成 element-ui
在开发 electron
的时候遇到了须要在 render
中修改 BrowserWindow
窗口大小的方式,通过一番尝试,有两种方法实现:vue
ipcRenderer
与 ipcMain
的通信来实现render
的 remote
模块来实现实现原理是 render
进程经过 ipcRenderer
与 ipcMain
进行通信以通知 main
进程操做窗体操做。 element-ui
在 render
引入 ipcRenderer
api
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
模块ui
const { remote } = require('electron')
调用 remote
方法中的 getCurrentWindow
获取当前窗体对象,而后进行修改窗体属性code
remote.getCurrentWindow().setSize(1000, 1000)
上面实现方式能够看出 remote
方式实际上是比较简单和方便的,我我的更倾向于用第二种方式实现此功能。其实在 remote
模块的底层实现也是经过发布同步消息的方式来实现与 main
进程通信的,本质上和咱们实现的方式一是同样的,既然 eletron
已经作了一个很好的封装,彻底也没有必要舍近求远 直接用 remote
方式实现是一个比较优雅的方式。对象