elsectron 实现mac和windows关闭窗口不退出程序
时间: 2024-09-24 15:23:23 浏览: 36
Electron是一个基于Chromium和Node.js的开源框架,它用于构建跨平台的桌面应用,包括Mac和Windows等操作系统。在 Electron 中,如果你想让应用程序在用户关闭窗口时不立即退出,可以使用`webContents`对象提供的事件处理。
首先,在主进程中,你需要监听`window-all-closed`或`quit`事件,而不是直接监听`close`事件,因为后者会立即关闭窗口。例如:
```javascript
const { app, BrowserWindow } = require('electron')
let win
app.on('ready', () => {
win = new BrowserWindow({
// 其他窗口设置...
})
// 当所有窗口关闭时(包括最小化到任务栏),我们并不想退出程序
win.webContents.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit()
}
})
})
// 如果是在Mac上,处理退出操作稍有不同
app.on('exit', () => {
// 在Mac上,除非显式调用quit(),否则当双击Dock图标再次打开应用时,程序不会自动重启
if (win && !win.isDestroyed()) {
win.close()
}
})
```
在这个例子中,Windows平台下会在所有窗口关闭后退出,而在Mac上,只有在用户手动点击Dock图标关闭应用时才会关闭当前窗口,程序并不会退出。
阅读全文