关怀模式

This commit is contained in:
Developer
2026-04-02 22:30:49 +08:00
parent 09fee0694c
commit 7872f2e78a
70 changed files with 4884 additions and 2752 deletions

View File

@@ -1,12 +1,15 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'utils/app_theme.dart';
import 'utils/app_initializer.dart';
import 'utils/force_guide_checker.dart';
import 'routes/app_routes.dart';
import 'constants/app_constants.dart';
import 'config/app_config.dart';
import 'controllers/shared_preferences_storage_controller.dart';
import 'services/get/theme_controller.dart';
import 'views/profile/guide/sp-guide.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
@@ -16,21 +19,31 @@ void main() async {
// 初始化 ThemeController在 AppInitializer 之前,确保主题最先加载)
Get.put(ThemeController(), permanent: true);
final result = await AppInitializer.initialize();
// 检查是否需要显示引导页
String initialRoute = await _getInitialRoute();
runApp(
MyApp(
initialRoute: result.initialRoute,
guideCheckResult: result.guideCheckResult,
),
);
runApp(MyApp(initialRoute: initialRoute));
}
Future<String> _getInitialRoute() async {
final prefs = await SharedPreferences.getInstance();
bool agreementAccepted =
prefs.getBool(AppConfig.keyAgreementAccepted) ?? false;
// 如果协议未被接受,显示引导页
if (!agreementAccepted) {
return '/sp-guide';
}
// 否则使用 AppInitializer 返回的初始路由
final result = await AppInitializer.initialize();
return result.initialRoute;
}
class MyApp extends StatelessWidget {
final String initialRoute;
final GuideCheckResult? guideCheckResult;
const MyApp({super.key, required this.initialRoute, this.guideCheckResult});
const MyApp({super.key, required this.initialRoute});
@override
Widget build(BuildContext context) {
@@ -45,6 +58,7 @@ class MyApp extends StatelessWidget {
themeMode: themeController.currentThemeMode,
initialRoute: initialRoute,
onGenerateRoute: AppRoutes.generateRoute,
routes: {'/sp-guide': (context) => const SpGuidePage()},
);
});
}