<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World!</title>
</head>
<body>
<h1>Hello World!</h1>
<!-- All of the Node.js APIs are available in this renderer process. -->
We are using Node.js <script>document.write(process.versions.node)</script>,
Chromium <script>document.write(process.versions.chrome)</script>,
and Electron <script>document.write(process.versions.electron)</script>.
<script>
// You can also require other files to run in this process
require('./renderer.js')
</script>
</body>
</html>
hide() {
if (process.platform === 'darwin') {
// Hides the window
this.searchWindow.hide();
// Make other windows to gain focus
app.hide();
} else {
// On Windows 11, previously active window gain focus when the current window is minimized
this.searchWindow.minimize();
// Then we call hide to hide app from the taskbar
this.searchWindow.hide();
}
}
show() {
this.window.show();
this.window.restore();
}
4条答案
按热度按时间guz6ccqo1#
对于Linux:我发现
browserWindow.hide()
可以正确地恢复焦点。对于Windows:
browserWindow.minimize()
正确恢复焦点。对于Mac:
app.hide()
可正确恢复焦点。不幸的是,调用app.hide()
会隐藏所有窗口。没有已知的方法可以在不使用app.hide()
隐藏所有窗口的情况下保持一些窗口打开。这适用于Mac、Linux和Windows:
2j4z5cfb2#
我刚刚在Github上发布了一个名为Popup Window的电子测试应用程序,它展示了如何正确地将焦点放回上一个窗口。这是我以前的一个项目的简化版本,只适用于macOS。我遇到了和你完全一样的问题,我记得我是通过隐藏应用程序而不是窗口来解决这个问题的,并处理窗口模糊事件来隐藏它...
啊...
主.js:
索引.html:
渲染器.js:
snvhrwxg3#
添加以下内容对我很有效:
我使用
mainWindow.hide()
来隐藏应用程序,在blur侦听器上添加app.hide()
会将焦点返回到最后使用的应用程序。0g0grzrc4#
如果您不希望看到应用程序最小化并从任务栏中隐藏其图标,并在隐藏时获得上一个窗口的焦点,请继续使用我的解决方案。
在Windows 11上,当当前窗口最小化时,先前聚焦的窗口会获得焦点。因此,如果你想隐藏任务栏图标,并使先前窗口获得焦点,我的解决方案将适用于你(仅在Windows 11和macOS Ventura上测试了单窗口应用):