64 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
import { app, BrowserWindow, Menu } from 'electron';
 | 
						||
import { isDev } from './env';
 | 
						||
import { createMainWindow, createIndexWindow } from './utils/window';
 | 
						||
import { getAppInfo } from './utils';
 | 
						||
import './ipc';
 | 
						||
 | 
						||
// 隐藏所有菜单
 | 
						||
Menu.setApplicationMenu(null);
 | 
						||
 | 
						||
let mainWindow: BrowserWindow | null = null;
 | 
						||
 | 
						||
function main() {
 | 
						||
  mainWindow = createMainWindow();
 | 
						||
  // update-begin--author:liaozhiyang---date:20250725---for:【JHHB-13】桌面应用消息通知
 | 
						||
  mainWindow.on('focus', () => {
 | 
						||
    // 清除任务栏闪烁
 | 
						||
    if (process.platform === 'win32') {
 | 
						||
      mainWindow!.flashFrame(false);
 | 
						||
    }
 | 
						||
  });
 | 
						||
  // update-end--author:liaozhiyang---date:20250725---for:【JHHB-13】桌面应用消息通知
 | 
						||
  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();
 | 
						||
  }
 | 
						||
});
 |