import 'dart:io'; import 'package:auto_updater/auto_updater.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:flutter_native_splash/flutter_native_splash.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:making_school_asignment_app/common/config/app_config.dart'; import 'package:making_school_asignment_app/common/config/colorUtils.dart'; import 'package:making_school_asignment_app/common/store/user_store.dart'; import 'package:making_school_asignment_app/common/utils/storage.dart'; import 'package:making_school_asignment_app/common/utils/utils.dart'; import 'package:making_school_asignment_app/routes/app_pages.dart'; import 'common/config/request_config.dart'; import 'common/utils/app_upgrade/upgradeLogic.dart'; void main() async { // 在测试模式下运行Get Get.testMode = true; FlutterNativeSplash.preserve(widgetsBinding: WidgetsFlutterBinding.ensureInitialized()); /// 初始化本地存储 await Get.putAsync(() => StorageService.init()); /// 初始化UserStore await Get.putAsync(() async => UserStore().init()); // Windows if (Platform.isWindows) { String feedURL = '${RequestConfig.imgUrl}infra-app/making_school_asignment_app/3/appcast.xml'; await autoUpdater.setFeedURL(feedURL); await autoUpdater.checkForUpdates(); await autoUpdater.setScheduledCheckInterval(3600); } SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle( statusBarColor: Colors.transparent, //状态栏背景颜色 statusBarIconBrightness: Brightness.light // dark:一般显示黑色 light:一般显示白色 )); SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, overlays: [SystemUiOverlay.top]); // 屏幕刘海 await SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp, DeviceOrientation.portraitDown]); // 屏幕强制竖屏 runApp(const MyApp()); Future.delayed(const Duration(seconds: 3), () => FlutterNativeSplash.remove()); } class MyApp extends StatelessWidget { const MyApp({super.key}); // This widget is the root of your application. @override Widget build(BuildContext context) { // String? oldRouter; return ScreenUtilInit( designSize: const Size(AppConfig.UI_WIDTH, AppConfig.UI_HEIGHT), /* minTextAdapt: true, splitScreenMode: true,*/ builder: () => GetMaterialApp( title: '点智学', debugShowCheckedModeBanner: false, theme: ThemeData( brightness: Brightness.light, primarySwatch: createMaterialColor(const Color(0xFF8C68FF)), primaryColor: const Color(0xFF8C68FF), // textTheme: Typography.englishLike2018.apply(fontSizeFactor: 1.sp,), primaryTextTheme: TextTheme( bodyLarge: TextStyle(fontSize: 14.sp, color: Colors.black87), ), useMaterial3: false, colorScheme: const ColorScheme.light( // 修改亮色主题的主题颜色 primary: Color(0xFF8C68FF), )), enableLog: true, logWriterCallback: (text, {bool isError = false}) { // isError ? LoggerUtils.e(text) : LoggerUtils.i(text); }, routingCallback: (routing) { String? currentRouter = routing?.current; // print("当前页面 ${currentRouter}"); // print("当前路由:${currentRouter}"); // if ([Routes.home, Routes.myInfo].contains(currentRouter)) { // SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle( // statusBarIconBrightness: Brightness.light, // systemStatusBarContrastEnforced: false, // )); // } // if (Routes.reviewHomework == currentRouter) { // // SystemChrome.setEnabledSystemUIMode(SystemUiMode.leanBack, overlays: []); // } else if (oldRouter == Routes.reviewHomework) { // // SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, overlays: [SystemUiOverlay.top, SystemUiOverlay.bottom]); // 屏幕刘海 // } // oldRouter = currentRouter; }, // 这里是国际化支持,确保添加flutter_localizations依赖 supportedLocales: const [ Locale('zh', 'CN'), // 中文简体 // 其他支持的locale可以在这里添加 ], localizationsDelegates: const [ // ...其他delegates GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, // 如果你使用了Cupertino风格的组件 // ...添加其他必要的delegates ], localeResolutionCallback: (locale, supportedLocales) { // 在这里可以实现自定义的locale解析逻辑 // 如果需要,返回你想要的Locale对象 return locale; }, //默认专场动画 defaultTransition: getTransition(), //初始化路由页面 initialRoute: Routes.startPage, /// 路由表 initialBinding: MainBinding(), getPages: AppPages.pages, builder: EasyLoading.init( builder: (context, child) { return MediaQuery( //Setting font does not change with system font size data: MediaQuery.of(context).copyWith(textScaler: const TextScaler.linear(1.0)), child: Scaffold( body: GestureDetector(onTap: () => Utils.hideKeyboard(), child: child), ), ); }, ), // home: const MyHomePage(title: 'Flutter Demo Home Page'), ), ); } } /// 默认 MainBinding class MainBinding implements Bindings { @override void dependencies() async { /// APP 更新 Get.put(UpgradeLogic(), permanent: true); } }