如何在没有远程模块的情况下最大化和最小化电子中的 window
How to maximize and minimize window in electron without the remote module
我正在尝试创建一个 electron 应用程序,但我无法理解如何使用远程模块
require('@electron/remote/');
我可以通过 window.close();
关闭 window
But I cant understand how to minimize and maximize the window.
I would like to use jquery to maximize, restore, minimize and unmaximize
所以如果有解决办法请回答我,尽量给我一个简单的ipc解释。
提前致谢。。
我今天遇到了同样的问题,我设法找到了解决方案。 Electron 团队不希望您使用 remote,因为好..这很糟糕。
请仔细阅读所有内容!
最好的解决方案是使用 ipc。不用担心。当你这样做时,它并不那么复杂。
注意:寻找 //------------------------
粘贴代码的位置
这可能是你的主进程的样子(主进程是创建 window 的地方)只是一个解释,这里没有复制粘贴。
const { app, BrowserWindow, electron } = require('electron');
const path = require('path');
const createWindow = () => {
// Create the browser window.
const mainWindow = new BrowserWindow({
minWidth: 1000,
minHeight: 480,
frame: false,
webPreferences: {
nodeIntegration: true,
contextIsolation: false,
},
});
// and load the index.html of the app.
mainWindow.loadFile(path.join(__dirname, 'index.html'));
// Open the DevTools.
mainWindow.webContents.openDevTools();
};
app.on('ready', createWindow);
因此,第一步将内容放入渲染器进程(html 文档附带的脚本)
//--------------------------------------------
const electron = require("electron");
const ipc = electron.ipcRenderer;
const togmax = document.getElementById("togmax");
togmax.addEventListener("click", function() {
ipc.send("toggle-maximize-window");
});
//--------------------------------------------
接下来,将其放入您的 const create window = () => {...
//--------------------------------------------
const ipc = require("electron").ipcMain;
//--------------------------------------------
//--------------------------------------------
ipc.on("toggle-maximize-window", function(event) {
if(mainWindow.isMaximized()) {
mainWindow.unmaximize();
} else {
mainWindow.maximize();
}
});
//--------------------------------------------
这就是您的主脚本之后的样子。
const { app, BrowserWindow, electron } = require('electron');
const path = require('path');
//---------------------------------------------
const ipc = require("electron").ipcMain;
//---------------------------------------------
const createWindow = () => {
// Create the browser window.
const mainWindow = new BrowserWindow({
minWidth: 1000,
minHeight: 480,
frame: false,
webPreferences: {
nodeIntegration: true,
contextIsolation: false,
},
});
// and load the index.html of the app.
mainWindow.loadFile(path.join(__dirname, 'index.html'));
// Open the DevTools.
mainWindow.webContents.openDevTools();
//----------------------------------------------------------------
ipc.on("toggle-maximize-window", function(event) {
if(mainWindow.isMaximized()) {
mainWindow.unmaximize();
} else {
mainWindow.maximize();
}
});
//-----------------------------------------------------------------
};
总而言之,您要输入 nodeIntergration: true
,这样您就可以在 HTML 的脚本中使用“require”。您正在使用带有 ipcRenderer 的脚本将消息发送到主进程 (ipcMain) 和 ipc.on(...)
表示当它收到一条消息时,它会执行括号中的任何操作。我们将代码 inside 粘贴到创建主 window 的位置的原因是因为我们需要远程模块具有的功能。
使用那段代码,您可以执行 mainWindow.maximize()
、mainWindow.minimize()
之类的操作,检查它是否已最大化,以及远程允许您执行的所有操作。如果您想要更多,请查看此 link。 https://www.electronjs.org/docs/latest/api/browser-window/#event-maximize 它向您展示了您可以做的所有事情。
然后你就完成了。只有 3 件事要粘贴,所以你很好。
确保在此之后检查 Electron 文档。我很好,所以我用勺子喂你代码,但一定要在你遇到障碍后学习更多!
我正在尝试创建一个 electron 应用程序,但我无法理解如何使用远程模块
require('@electron/remote/');
我可以通过 window.close();
But I cant understand how to minimize and maximize the window.
I would like to use jquery to maximize, restore, minimize and unmaximize
所以如果有解决办法请回答我,尽量给我一个简单的ipc解释。
提前致谢。。
我今天遇到了同样的问题,我设法找到了解决方案。 Electron 团队不希望您使用 remote,因为好..这很糟糕。
请仔细阅读所有内容!
最好的解决方案是使用 ipc。不用担心。当你这样做时,它并不那么复杂。
注意:寻找 //------------------------
粘贴代码的位置
这可能是你的主进程的样子(主进程是创建 window 的地方)只是一个解释,这里没有复制粘贴。
const { app, BrowserWindow, electron } = require('electron');
const path = require('path');
const createWindow = () => {
// Create the browser window.
const mainWindow = new BrowserWindow({
minWidth: 1000,
minHeight: 480,
frame: false,
webPreferences: {
nodeIntegration: true,
contextIsolation: false,
},
});
// and load the index.html of the app.
mainWindow.loadFile(path.join(__dirname, 'index.html'));
// Open the DevTools.
mainWindow.webContents.openDevTools();
};
app.on('ready', createWindow);
因此,第一步将内容放入渲染器进程(html 文档附带的脚本)
//--------------------------------------------
const electron = require("electron");
const ipc = electron.ipcRenderer;
const togmax = document.getElementById("togmax");
togmax.addEventListener("click", function() {
ipc.send("toggle-maximize-window");
});
//--------------------------------------------
接下来,将其放入您的 const create window = () => {...
//--------------------------------------------
const ipc = require("electron").ipcMain;
//--------------------------------------------
//--------------------------------------------
ipc.on("toggle-maximize-window", function(event) {
if(mainWindow.isMaximized()) {
mainWindow.unmaximize();
} else {
mainWindow.maximize();
}
});
//--------------------------------------------
这就是您的主脚本之后的样子。
const { app, BrowserWindow, electron } = require('electron');
const path = require('path');
//---------------------------------------------
const ipc = require("electron").ipcMain;
//---------------------------------------------
const createWindow = () => {
// Create the browser window.
const mainWindow = new BrowserWindow({
minWidth: 1000,
minHeight: 480,
frame: false,
webPreferences: {
nodeIntegration: true,
contextIsolation: false,
},
});
// and load the index.html of the app.
mainWindow.loadFile(path.join(__dirname, 'index.html'));
// Open the DevTools.
mainWindow.webContents.openDevTools();
//----------------------------------------------------------------
ipc.on("toggle-maximize-window", function(event) {
if(mainWindow.isMaximized()) {
mainWindow.unmaximize();
} else {
mainWindow.maximize();
}
});
//-----------------------------------------------------------------
};
总而言之,您要输入 nodeIntergration: true
,这样您就可以在 HTML 的脚本中使用“require”。您正在使用带有 ipcRenderer 的脚本将消息发送到主进程 (ipcMain) 和 ipc.on(...)
表示当它收到一条消息时,它会执行括号中的任何操作。我们将代码 inside 粘贴到创建主 window 的位置的原因是因为我们需要远程模块具有的功能。
使用那段代码,您可以执行 mainWindow.maximize()
、mainWindow.minimize()
之类的操作,检查它是否已最大化,以及远程允许您执行的所有操作。如果您想要更多,请查看此 link。 https://www.electronjs.org/docs/latest/api/browser-window/#event-maximize 它向您展示了您可以做的所有事情。
然后你就完成了。只有 3 件事要粘贴,所以你很好。 确保在此之后检查 Electron 文档。我很好,所以我用勺子喂你代码,但一定要在你遇到障碍后学习更多!