mirror of
https://github.com/ikun0014/lx-music-mobile.git
synced 2025-05-23 22:37:41 +08:00
78 lines
2.1 KiB
TypeScript
78 lines
2.1 KiB
TypeScript
import '@/utils/errorHandle'
|
|
import { init as initLog } from '@/utils/log'
|
|
import { bootLog, getBootLog } from '@/utils/bootLog'
|
|
import '@/config/globalData'
|
|
import { getFontSize } from '@/utils/data'
|
|
import { exitApp } from './utils/nativeModules/utils'
|
|
import { windowSizeTools } from './utils/windowSizeTools'
|
|
import { listenLaunchEvent } from './navigation/regLaunchedEvent'
|
|
import { tipDialog } from './utils/tools'
|
|
|
|
console.log('starting app...')
|
|
listenLaunchEvent()
|
|
|
|
void Promise.all([getFontSize(), windowSizeTools.init()]).then(async([fontSize]) => {
|
|
global.lx.fontSize = fontSize
|
|
bootLog('Font size setting loaded.')
|
|
|
|
let isInited = false
|
|
let handlePushedHomeScreen: () => void | Promise<void>
|
|
|
|
const tryGetBootLog = () => {
|
|
try {
|
|
return getBootLog()
|
|
} catch (err) {
|
|
return 'Get boot log failed.'
|
|
}
|
|
}
|
|
|
|
const handleInit = async() => {
|
|
if (isInited) return
|
|
void initLog()
|
|
const { default: init } = await import('@/core/init')
|
|
try {
|
|
handlePushedHomeScreen = await init()
|
|
} catch (err: any) {
|
|
void tipDialog({
|
|
title: '初始化失败 (Init Failed)',
|
|
message: `Boot Log:\n${tryGetBootLog()}\n\n${(err.stack ?? err.message) as string}`,
|
|
btnText: 'Exit',
|
|
bgClose: false,
|
|
}).then(() => {
|
|
exitApp()
|
|
})
|
|
return
|
|
}
|
|
isInited ||= true
|
|
}
|
|
const { init: initNavigation, navigations } = await import('@/navigation')
|
|
|
|
initNavigation(async() => {
|
|
await handleInit()
|
|
if (!isInited) return
|
|
// import('@/utils/nativeModules/cryptoTest')
|
|
|
|
await navigations.pushHomeScreen().then(() => {
|
|
void handlePushedHomeScreen()
|
|
}).catch((err: any) => {
|
|
void tipDialog({
|
|
title: 'Error',
|
|
message: err.message,
|
|
btnText: 'Exit',
|
|
bgClose: false,
|
|
}).then(() => {
|
|
exitApp()
|
|
})
|
|
})
|
|
})
|
|
}).catch((err) => {
|
|
void tipDialog({
|
|
title: '初始化失败 (Init Failed)',
|
|
message: `Boot Log:\n\n${(err.stack ?? err.message) as string}`,
|
|
btnText: 'Exit',
|
|
bgClose: false,
|
|
}).then(() => {
|
|
exitApp()
|
|
})
|
|
})
|