electron創(chuàng)建窗口會出現(xiàn)白屏問題,以下是介紹預創(chuàng)建窗口的總結(jié)死遭。
1、基本設置不變欣孤,初始化創(chuàng)建的時候添加show: false配置馋没。
const { BrowserWindow } = require('electron');
const win = new BrowserWindow({ show: false });
每次只需show/hide窗口即可。
win.show(); // 顯示
win.hide(); // 隱藏
2降传、某些快捷鍵或者系統(tǒng)默認快捷鍵篷朵,會對窗口默認觸發(fā)close操作。
這樣就會導致窗口被銷毀婆排,當要展示窗口時声旺,需要重新創(chuàng)建,就會再次出現(xiàn)白屏問題段只。
解決方法:做預創(chuàng)建窗口監(jiān)聽腮猖,阻止觸發(fā)close,改為hide赞枕。
// 預創(chuàng)建窗口
win.on('close', function(e) {
????e.preventDefault();??
????setTimeout(() => { win.hide(); }, 50)
});
3缚够、但是阻止預創(chuàng)建窗口觸發(fā)close時,同樣也會阻止整個electron應用退出鹦赎。
解決辦法:對app對退出前監(jiān)聽,增加是否要退出應用的全局標識误堡。
const { app } = require('electron');
app.on('before-quit', function(e) {
? ? global.QUIT = true;
});
// 預創(chuàng)建窗口
win.on('close', function(e) {
? ?if (global.QUIT) { return false; }
????e.preventDefault();
????setTimeout(() => { win.hide(); }, 50)
});