在我的Electron应用程序中,我有一个新的浏览器窗口,作为向用户发出的一种“通知”,我的(未聚焦的)应用程序中发生了一些事情。
这个新窗口有一个“忽略”通知的按钮。
问题在于,当他们点击忽略时,即使代码只是关闭窗口,主浏览器窗口也会成为焦点。
有没有办法让它与新的浏览器窗口交互也不会聚焦主浏览器窗口?
这就是我产生窗口的方式:
getGroup(id).map(
groupOpt => groupOpt.flatMap(
group => addStuff(group).toOption
)
)
然后我对点击的“忽略”按钮做出反应:
messageWindow = new BrowserWindow({
width,
height,
y: top,
x: left,
alwaysOnTop: true,
closable: true,
minimizable: false,
resizable: false,
show: false,
title: 'Message Notification',
frame: false,
hasShadow: false,
acceptFirstMouse: true,
});
messageWindow.loadURL(
url.format({
pathname: path.join(app.getAppPath(),'./foo.html'),
protocol: 'file:',
slashes: true,
})
);
messageWindow.on('closed', () => {
messageWindow = null;
});
messageWindow.once('ready-to-show', () => {
messageWindow.show();
});
所有这些代码都有效,但焦点会返回主窗口。