12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- import { app, BrowserWindow, screen } from 'electron';
- import is_dev from 'electron-is-dev';
- import { join } from 'path';
- let mainWindow: BrowserWindow | null = null;
- class createWin {
- constructor() {
- const displayWorkAreaSize = screen.getAllDisplays()[0].workArea;
- mainWindow = new BrowserWindow({
- width: parseInt(`${displayWorkAreaSize.width * 0.85}`, 10),
- height: parseInt(`${displayWorkAreaSize.height * 0.85}`, 10),
- movable: true,
- // frame: false,
- show: false,
- center: true,
- resizable: true,
- // transparent: true,
- titleBarStyle: 'default',
- webPreferences: {
- devTools: true,
- contextIsolation: false,
- nodeIntegration: true,
- enableRemoteModule: true,
- },
- backgroundColor: '#fff',
- });
- const URL = is_dev
- ? `https://localhost:${process.env.PORT}` // vite 启动的服务器地址
- : `file://${join(__dirname, '../index.html')}`; // vite 构建后的静态文件地址
- mainWindow.loadURL(URL);
- mainWindow.on('ready-to-show', () => {
- mainWindow.show();
- });
- }
- }
- app.whenReady().then(() => new createWin());
- const isFirstInstance = app.requestSingleInstanceLock();
- if (!isFirstInstance) {
- app.quit();
- } else {
- app.on('second-instance', () => {
- if (mainWindow) {
- mainWindow.focus();
- }
- });
- }
- app.on('window-all-closed', () => {
- if (process.platform !== 'darwin') {
- app.quit();
- }
- });
- app.on('activate', () => {
- if (BrowserWindow.getAllWindows().length === 0) {
- new createWin();
- }
- });
|