当有多个BrowserView(或窗口)的时候,每次打开又不想重新去渲染,可以通过BrowserView的setBounds、getBounds方法去实现
主进程中监听2个事件,一个是隐藏窗口,一个显示窗口
ipcMain.on('browser-view-hide', (event, data) => {//接收到ipcRender发送过来的隐藏browserView事件,通过setBounds达到隐藏窗口的效果 browserView.setBounds({ x: 0, y: 0, width: 0, height: 0, }) }) ipcMain.on('browser-view-show', (event, data) => {//接收到ipcRender发送过来的显示browserView事件,也是通过setBounds达到显示窗口的效果 browserView.setBounds({ x: 0, y: 0, width: 1000, height: 1000, }) win.setTopBrowserView(browserView)//这里需要再置顶一下browserView,防止被其他窗口遮盖 })
当然为了方便调用,可以把setBounds中的options提取出来做为一个公用变量,方便调用