直接上源码
vue _> script
import { ipcRenderer } from 'electron'
windowOperation (index) {
switch (index) {
case 1:
console.log('最小化')
ipcRenderer.send('windowOperation', '1')
break
case 2:
console.log('最大化')
ipcRenderer.send('windowOperation', '2')
break
case 3:
console.log('关闭')
ipcRenderer.send('windowOperation', '3')
break
default:
break
}
}
main _> index.js
import {
app,
globalShortcut,
BrowserWindow,
Menu,
Tray,
ipcMain,
screen
} from 'electron'
ipcMain.on('windowOperation', function (event, arg) {
let index = Number(arg)
switch (index) {
case 1:
console.log('最小化')
mainWindow.minimize()
break
case 2:
console.log('最大化')
let sw = screen.getPrimaryDisplay().workAreaSize.width
let sh = screen.getPrimaryDisplay().workAreaSize.height
if (mainWindow.getSize()[0] === sw && mainWindow.getSize()[1] === sh) {
// 还原并居中
mainWindow.setBounds({
x: (sw - 1000) / 2, // 为了居中
y: (sh - 700) / 2, // 为了居中
width: 1000, // 自己设置的最小宽度
height: 700
})
} else {
// 最大
mainWindow.setBounds({ x: 0, y: 0, width: sw, height: sh })
}
break
case 3:
console.log('关闭')
mainWindow.close()
break
default:
break
}
})