const { app, BrowserWindow, screen, globalShortcut, ipcMain } = require('electron');
|
const { join } = require('path');
|
|
// 屏蔽安全警告
|
// ectron Security Warning (Insecure Content-Security-Policy)
|
process.env['ELECTRON_DISABLE_SECURITY_WARNINGS'] = 'true';
|
|
// 创建浏览器窗口时,调用这个函数。
|
const createWindow = (width, height) => {
|
const win = new BrowserWindow({
|
width: width,
|
height: height,
|
minWidth: 1280,
|
minHeight: 720,
|
webPreferences: {
|
preload: join(__dirname, 'preload.js')
|
}
|
});
|
|
win.maximize();
|
// development模式
|
if (process.env.VITE_DEV_SERVER_URL) {
|
win.loadURL(process.env.VITE_DEV_SERVER_URL);
|
// 开启调试台
|
win.webContents.openDevTools();
|
} else {
|
win.loadFile(join(__dirname, '../dist/index.html'));
|
}
|
};
|
|
// Electron 会在初始化后并准备
|
app.whenReady().then(() => {
|
const { width, height } = screen.getPrimaryDisplay().bounds;
|
createWindow(width, height);
|
app.on('activate', () => {
|
if (BrowserWindow.getAllWindows().length === 0) createWindow();
|
});
|
|
// 监听打开新窗口
|
ipcMain.on('open-new-window', (event, meet) => {
|
const { meetName, id } = JSON.parse(meet);
|
const childWin = new BrowserWindow({
|
width: width,
|
height: height,
|
minWidth: width,
|
minHeight: height,
|
webPreferences: {
|
preload: join(__dirname, 'preload.js')
|
}
|
});
|
childWin.maximize();
|
// development模式
|
if (process.env.VITE_DEV_SERVER_URL) {
|
childWin.loadURL(process.env.VITE_DEV_SERVER_URL + '#/meet?' + `meetName=${meetName}&id=${id}`);
|
} else {
|
childWin.loadFile(join(__dirname, '../dist/index.html'), {
|
hash: '/meet',
|
query: {
|
meetName,
|
id
|
}
|
});
|
}
|
});
|
});
|
|
app.on('window-all-closed', () => {
|
if (process.platform !== 'darwin') app.quit();
|
});
|