62 lines
1.8 KiB
TypeScript
62 lines
1.8 KiB
TypeScript
import { app, BrowserWindow } from 'electron'
|
||
import { electronApp, optimizer } from '@electron-toolkit/utils'
|
||
import { CreatWindow } from '../define/window/windowManager'
|
||
import { Logger } from '../define/Tools/logger'
|
||
import { successMessage } from '@/public/generalTools'
|
||
// import { machineId } from 'node-machine-id'
|
||
|
||
// 在文件顶部添加这段代码
|
||
process.on('unhandledRejection', (reason, promise) => {
|
||
console.error('未处理的Promise拒绝:', promise, '原因:', reason)
|
||
// 可以选择记录到日志文件或者向用户显示错误
|
||
})
|
||
|
||
// 在应用启动前,设置正确的编码
|
||
process.env.LANG = 'zh_CN.UTF-8'
|
||
|
||
async function createWindow() {
|
||
try {
|
||
// 创建主窗口
|
||
global.wm = new CreatWindow()
|
||
let win = global.wm.createWin('main', { openDevTools: false, minWidth: 1000, minHeight: 750 })
|
||
global.wins = [win]
|
||
global.wm.ipcMainListen()
|
||
|
||
// 先初始化日志
|
||
global.logger = new Logger()
|
||
|
||
// 再初始化文件夹和配置
|
||
await global.wm.initConfigFolderOrFile()
|
||
await global.wm.InitConfig()
|
||
|
||
successMessage(
|
||
null,
|
||
'软件初始化成功,创建窗体成功,初始化配置,初始化日志成功',
|
||
'SoftWare.Init'
|
||
)
|
||
} catch (error: any) {
|
||
console.error('应用初始化失败:', error)
|
||
// 移除throw error,改为返回一个自定义错误消息
|
||
throw error
|
||
}
|
||
}
|
||
|
||
app.whenReady().then(async () => {
|
||
electronApp.setAppUserModelId('com.electron')
|
||
|
||
app.on('browser-window-created', (_, window) => {
|
||
optimizer.watchWindowShortcuts(window)
|
||
})
|
||
|
||
await createWindow()
|
||
app.on('activate', async function () {
|
||
if (BrowserWindow.getAllWindows().length === 0) await createWindow()
|
||
})
|
||
})
|
||
|
||
app.on('window-all-closed', () => {
|
||
if (process.platform !== 'darwin') {
|
||
app.quit()
|
||
}
|
||
})
|