electron预创建窗口方法总结

electron创建窗口会出现白屏问题,以下是介绍预创建窗口的总结。

1、基本设置不变,初始化创建的时候添加show: false配置。

const { BrowserWindow } = require('electron');

const win = new BrowserWindow({ show: false });

每次只需show/hide窗口即可。

win.show(); // 显示

win.hide(); // 隐藏

2、某些快捷键或者系统默认快捷键,会对窗口默认触发close操作。

这样就会导致窗口被销毁,当要展示窗口时,需要重新创建,就会再次出现白屏问题。

解决方法:做预创建窗口监听,阻止触发close,改为hide。

// 预创建窗口

win.on('close', function(e) {

    e.preventDefault();  

    setTimeout(() => { win.hide(); }, 50)

});

3、但是阻止预创建窗口触发close时,同样也会阻止整个electron应用退出。

解决办法:对app对退出前监听,增加是否要退出应用的全局标识。

const { app } = require('electron');

app.on('before-quit', function(e) {

    global.QUIT = true;

});

// 预创建窗口

win.on('close', function(e) {

   if (global.QUIT) { return false; }

    e.preventDefault();

    setTimeout(() => { win.hide(); }, 50)

});

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容