electron 默认弹窗会导致输入框焦点失去的问题解决方案

问题  :在Windows上出现,系统自带的弹窗会导致主窗口失去焦点。

解决方案 :

1 使用自己写的弹窗,不想写那就用方案二,注意修改相关变量

2.以下代码放在main.js 创建主窗口后面的

const isWindows = process.platform === 'win32';
let needsFocusFix = false;
let triggeringProgrammaticBlur = false;

win.on('blur', (event) => {
if(!triggeringProgrammaticBlur) {
needsFocusFix = true;
}
})

win.on('focus', (event) => {
if(isWindows && needsFocusFix) {
needsFocusFix = false;
triggeringProgrammaticBlur = true;
setTimeout(function () {
win.blur();
win.focus();
setTimeout(function () {
triggeringProgrammaticBlur = false;
}, 100);
}, 100);
}
})

3.重新打包

4.相关git

https://github.com/electron/electron/issues/19977
https://github.com/electron/electron/issues/20400

posted on 2022-10-18 10:45  myYouth  阅读(583)  评论(0)    收藏  举报

导航