const { BrowserWindow } = require('electron');
const win = new BrowserWindow({
width: 800,
height: 600,
x: 100,
y: 100,
minWidth: 400,
minHeight: 300,
maxWidth: 1200,
maxHeight: 900,
resizable: true,
movable: true,
minimizable: true,
maximizable: true,
closable: true,
title: '我的应用',
icon: 'icon.png',
show: false,
frame: true,
transparent: false,
alwaysOnTop: false,
fullscreen: false,
webPreferences: {
nodeIntegration: false,
contextIsolation: true,
preload: path.join(__dirname, 'preload.js')
}
});
win.once('ready-to-show', () => {
win.show();
});
win.show();
win.setOpacity(0);
let opacity = 0;
const timer = setInterval(() => {
opacity += 0.1;
win.setOpacity(opacity);
if (opacity >= 1) clearInterval(timer);
}, 50);
win.minimize();
win.maximize();
win.setFullScreen(true);
win.restore();
win.close();
win.hide();
win.show();
win.on('ready-to-show', () => {
console.log('窗口准备显示');
});
win.on('show', () => {
console.log('窗口显示');
});
win.on('hide', () => {
console.log('窗口隐藏');
});
win.on('close', (event) => {
event.preventDefault();
win.hide();
});
win.on('closed', () => {
console.log('窗口已关闭');
});
win.on('minimize', () => {
console.log('窗口最小化');
});
win.on('maximize', () => {
console.log('窗口最大化');
});
win.on('enter-full-screen', () => {
console.log('进入全屏');
});
const windows = new Map();
function createWindow(id) {
const win = new BrowserWindow({
width: 800,
height: 600
});
win.loadFile('index.html');
windows.set(id, win);
win.on('closed', () => {
windows.delete(id);
});
return win;
}
const allWindows = BrowserWindow.getAllWindows();
const focusedWindow = BrowserWindow.getFocusedWindow();
const parent = new BrowserWindow();
const child = new BrowserWindow({
parent: parent,
modal: true,
show: false
});
child.loadFile('child.html');
child.once('ready-to-show', () => {
child.show();
});
const win = new BrowserWindow({
width: 800,
height: 600,
frame: false,
transparent: true
});
<div style="-webkit-app-region: drag">
<div style="-webkit-app-region: no-drag">
<button>按钮</button>
</div>
</div>
const mainWin = new BrowserWindow();
const childWin = new BrowserWindow();
childWin.webContents.send('message', 'Hello');
contextBridge.exposeInMainWorld('electronAPI', {
onMessage: (callback) => {
ipcRenderer.on('message', (event, data) => callback(data));
}
});