runApplication static method

Future<void> runApplication({
  1. required Future<void> onInit(),
  2. required Widget app,
  3. required AssetLoader localAssetLoader,
  4. List<Locale>? supportedLocales,
  5. String? localPath,
  6. Future<void> onFinish()?,
})

运行应用

Implementation

static Future<void> runApplication({
  required Future<void> Function() onInit,
  required Widget app,
  required AssetLoader localAssetLoader,
  List<Locale>? supportedLocales,
  String? localPath,
  Future<void> Function()? onFinish,
}) async {
  _setupErrorBuilder();
  WidgetsBinding widgetsBinding = WidgetsFlutterBinding.ensureInitialized();
  FlutterNativeSplash.preserve(widgetsBinding: widgetsBinding);
  await EasyLocalization.ensureInitialized();
  EasyLocalization.logger.enableLevels = [LevelMessages.error, LevelMessages.warning];
  EasyLocalization.logger.printer = easyLocalizationPrint;
  Jiffy.setLocale('zh_CN');
  await StorageService.instance.init();
  await Get.putAsync(() => SystemStore().init());
  await createCacheDirectory();
  await LogService.instance.init();
  Get.put<ConfigStore>(ConfigStore());
  await LogService.instance.removeExpireLogFiles();
  await onInit();
  if (ConfigStore.to.config.app.lockVertical == true) UtilInternal.lockVerticalScreen();
  runApp(
    EasyLocalization(
      path: localPath ?? 'assets/i18n',
      supportedLocales: [...presetLocales, ...supportedLocales ?? []],
      saveLocale: false,
      fallbackLocale: const Locale('zh', 'CN'),
      startLocale: EnumLanguageMode.getMode(SystemStore.to.language),
      assetLoader: localAssetLoader,
      child: app,
    ),
  );
  if (!UtilInternal.isWeb) _setupStatusBar();
  FlutterNativeSplash.remove();
  await onFinish?.call();
}