electron关闭窗口
关闭子窗口的方法大体流程如下:1、在渲染进程(子窗口)中通过点击“关闭”按钮事件,通知主进程ipcRenderer.send("close");2、主进程收到通知后执行close方法ipcMain.on('close', () => {win&& win.close();});3、在创建窗口的时候,可以给他添加close的回调监听;调用close的方法后就会进入这里的回调co
·
关闭子窗口的方法大体流程如下:
1、在渲染进程(子窗口)中通过点击“关闭”按钮事件,通知主进程
ipcRenderer.send("close");
2、主进程收到通知后执行close方法
ipcMain.on('close', () => {
//在这里可以做一些逻辑判断,是否可以关闭,如果想阻止关闭,使用:event.preventDefault();
win && win.close();
});
3、在创建窗口的时候,可以给他添加close的回调监听;调用close的方法后就会进入这里的回调
const win = new BrowserWindow()
win.on('close', (event) => {
console.log(`窗口即将销毁`);
});
这里我遇到了个坑,发现windows在开着控制台的时候,调用close方法没办法关闭渲染进程,把控制台关了就好了
也没找到什么原因,最后只能用destroy强制给他关闭就ok了
win.on('close', (event) => {
//前面可以加些判断条件,看下当前是否可以关闭进程
let { canClose } = storage.getData('canClose');
if(canClose){
win.destroy()
}
});
文档中对close和destroy的区别介绍也不是很详细
参考文档:electron官方文档
更多推荐
已为社区贡献2条内容
所有评论(0)