import 'package:flutter/material.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:get/get_navigation/src/root/get_material_app.dart'; import 'package:location/resource/colors.gen.dart'; import 'package:location/resource/string.gen.dart'; import 'package:location/resource/string_source.dart'; import 'package:location/router/app_pages.dart'; import 'package:location/utils/app_info_util.dart'; import 'package:location/utils/mmkv_util.dart'; import 'package:location/utils/toast_util.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart'; import 'di/get_it.dart'; import 'data/consts/build_config.dart'; import 'data/consts/constants.dart'; import 'device/device_info_util.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); configureDependencies(); await initRequired(); //非隐私相关 initCommon(); //系统参数&第三方sdk初始化 await initAfterGrant(); //檢查地址 checkEnv(); runApp(const MyApp()); } Future initRequired() async { //存储 await KVUtil.init(); } void initCommon() { //全局配置smartDialog smartConfig(); } void smartConfig() { SmartDialog.config.custom = SmartConfigCustom(animationType: SmartAnimationType.fade); } Future initAfterGrant() async { // if (!isAgreePrivacyPolicy()) { // return; // } //获取包信息 await appInfoUtil.init(); //获取设备信息 await deviceInfoUtil.init(); } void checkEnv() { if (!Constants.isProdEnv() && !BuildConfig.isDebug) { ToastUtil.show('不是正式环境!!!', addPostFrame: true); } } class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return ScreenUtilInit( designSize: const Size(360, 640), builder: (_, child) { return _buildMaterialApp(); }, ); } _buildMaterialApp() { return RefreshConfiguration( headerBuilder: () => const MaterialClassicHeader(color: ColorName.colorPrimary), footerBuilder: () => ClassicFooter( canLoadingText: StringName.loadingMore, idleText: StringName.loadPullUp, loadingText: StringName.loadingTxt, noDataText: StringName.loadNoData, failedText: StringName.loadFailed, ), child: GetMaterialApp( onGenerateTitle: (_) => StringName.appName, getPages: AppPage.pages, initialRoute: RoutePath.splash, initialBinding: AppBinding(), theme: ThemeData( useMaterial3: true, textSelectionTheme: const TextSelectionThemeData( cursorColor: ColorName.colorPrimary, // 设置默认光标颜色 selectionHandleColor: ColorName.colorPrimary, // 设置光标下面水滴的颜色 ), ), navigatorObservers: [FlutterSmartDialog.observer], builder: FlutterSmartDialog.init(), translations: StringResource(), localizationsDelegates: const [ GlobalMaterialLocalizations.delegate, //是Flutter的一个本地化委托,用于提供Material组件库的本地化支持 GlobalWidgetsLocalizations.delegate, //用于提供通用部件(Widgets)的本地化支持 GlobalCupertinoLocalizations.delegate, //用于提供Cupertino风格的组件的本地化支持 ], supportedLocales: const [ Locale('zh', 'CN'), // 支持的语言和地区 ], // 你的翻译 locale: const Locale('zh', 'CN'), // 将会按照此处指定的语言翻译 添加一个回调语言选项,以备上面指定的语言翻译不存在 fallbackLocale: const Locale('zh', 'CN'), ), ); } }