electron - 在电子应用程序上重新加载时关闭所有窗口
问题描述
我有一个电子桌面应用程序,当我加载它时会打开 2 个新窗口,打开新窗口的代码是这样的:
electron = require('electron')
win = electron.remote.getCurrentWindow();
BrowserWindow = electron.remote.BrowserWindow;
wind = new BrowserWindow({
width: 400,
height: 200,
x:3,
y:12,
frame: false,
// transparent: true,
alwaysOnTop: true, // Add this line
// skipTaskbar:true, // don't show icon on taskbar
opacity:0.9,
})
现在,当我测试我的应用程序时,我经常使用 Reload 命令(在 Windows 上按 ctrl+R)。我的问题是,当我这样做时,窗户保持打开状态,并在其上打开更多窗户。
如何让 Reload 关闭所有窗口?
解决方案
当onbeforeunload
窗口关闭或重新加载时触发事件(在渲染器中)。您可以使用它来关闭单个窗口。
否则,您可以通过 IPC 消息通知 electron 为您关闭所有窗口。
像这样的东西应该可以完成这项工作。
// renderer/index.js
const {ipcRenderer} = require('electron')
ipcRenderer.send('my-closeallwindowsasap-channel') // can have arguments
// -------------------------------------------------------
// main/index.js
ipcMain.on('my-closeallwindowsasap-channel', (event, arg) => {
BrowserWindow.getAllWindows().forEach(window => {
window.close()
})
})
推荐阅读
- c# - 文件更新时事件调用2次,只需要调用一次
- javascript - 如何在 .scss 文件中导入 .js 文件
- python - 具有自定义声明的 Firebase 存储规则
- c++ - 如何在避免代码重复和名称冲突的同时实现同一算法的多个版本?
- html - 对齐 CSS 网格元素
- react-native - React Native 多次使用父类中定义的组件
- php - PhpSpreadsheet:警告 simplexml_load_string():内存分配失败:缓冲区增长
- tensorflow - Tensorflow MobileNetV1 SSD Coco 实现是如何工作的
- python - python scipy FFT的奇怪结果
- machine-learning - 在 CNN 模型中我们如何找到我们使用过的过滤器的初始化值