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
浙公网安备 33010602011771号