1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- import './ipc';
- import { app, BrowserWindow, Menu } from 'electron';
- import { isDev } from './env';
- import { createMainWindow, createIndexWindow } from './utils/window';
- import { getAppInfo} from "./utils";
- // 隐藏所有菜单
- Menu.setApplicationMenu(null);
- let mainWindow: BrowserWindow | null = null;
- function main() {
- mainWindow = createMainWindow();
- return mainWindow;
- }
- // 非开发环境,只允许一个实例运行
- if (!isDev) {
- // 是否取得了单一实例锁
- const gotTheLock = app.requestSingleInstanceLock();
- if (gotTheLock) {
- app.on('second-instance', () => {
- // 开启一个新的窗口
- createIndexWindow();
- });
- } else {
- // 没有取得单一实例锁,则退出应用
- app.exit(0);
- }
- }
- // 生命周期管理
- app.whenReady().then(() => {
- // 获取应用信息
- const $appInfo = getAppInfo();
- if ($appInfo?.productName && $appInfo?.appId) {
- app.setName($appInfo.productName);
- app.setAppUserModelId($appInfo.appId);
- }
- main();
- app.on('activate', () => {
- if (BrowserWindow.getAllWindows().length === 0) {
- main();
- }
- });
- });
- app.on('window-all-closed', () => {
- if (process.platform !== 'darwin') {
- app.quit();
- }
- });
|