electron预创建窗口方法总结

2021-08-19  本文已影响0人  SailingBytes

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)

});

上一篇 下一篇

猜你喜欢

热点阅读