Making.School.Asignment.app/making_school_asignment_app/lib/main.dart

151 lines
5.9 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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>(() => StorageService.init());
/// 初始化UserStore
await Get.putAsync<UserStore>(() 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.immersiveSticky, 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);
}
}