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進程

相關文章
相關標籤/搜索