import 'package:flutter/material.dart'; import 'package:shared_preferences/shared_preferences.dart'; import '../constants/app_constants.dart'; import '../config/app_config.dart'; import '../views/main_navigation.dart'; import '../views/profile/guide/sp-guide.dart'; import '../views/profile/profile_page.dart'; import '../views/profile/settings/widgets.dart'; import '../views/footprint/collect_notes.dart'; /// 时间: 2026-03-27 /// 功能: 应用路由配置 /// 介绍: 定义应用的路由规则和页面导航 /// 最新变化: 简化路由逻辑,移除黑屏检测机制 class AppRoutes { static const String initial = AppConstants.routeHome; static Future getInitialRoute(SharedPreferences prefs) async { try { debugPrint('========================================'); debugPrint('=== AppRoutes.getInitialRoute ==='); // 获取首次启动状态 final bool firstLaunch = prefs.getBool(AppConfig.keyFirstLaunch) ?? true; final bool agreementAccepted = prefs.getBool(AppConfig.keyAgreementAccepted) ?? false; debugPrint('firstLaunch: $firstLaunch'); debugPrint('agreementAccepted: $agreementAccepted'); // 简化逻辑,避免复杂条件判断 if (firstLaunch) { debugPrint('✅ 首次启动,返回: /guide'); await prefs.setBool(AppConfig.keyFirstLaunch, false); return '/guide'; } if (!agreementAccepted) { debugPrint('✅ 未同意协议,返回: /guide'); return '/guide'; } debugPrint('✅ 正常启动,返回: ${AppConstants.routeHome}'); return AppConstants.routeHome; } catch (e) { debugPrint('❌ 异常: $e,返回主页'); return AppConstants.routeHome; } } static Route generateRoute(RouteSettings settings) { debugPrint('🎯 generateRoute 被调用: ${settings.name}'); switch (settings.name) { case AppConstants.routeHome: debugPrint('✅ 返回主页'); return MaterialPageRoute( builder: (_) => const MainNavigation(), settings: settings, ); case '/guide': debugPrint('✅ 返回引导页'); return MaterialPageRoute( builder: (_) => const SpGuidePage(), settings: settings, ); case AppConstants.routeSettings: debugPrint('✅ 返回设置页'); return MaterialPageRoute( builder: (_) => const SettingsPage(), settings: settings, ); case AppConstants.routeProfile: debugPrint('✅ 返回个人页'); return MaterialPageRoute( builder: (_) => const ProfilePage(), settings: settings, ); case AppConstants.routeWidgetsPage: debugPrint('✅ 返回卡片设置页'); return MaterialPageRoute( builder: (_) => const WidgetsPage(), settings: settings, ); case AppConstants.routeCollectNotes: debugPrint('✅ 返回笔记页面'); return MaterialPageRoute( builder: (_) => const CollectNotesPage(), settings: settings, ); default: debugPrint('⚠️ 未知路由: ${settings.name},直接返回主页'); return MaterialPageRoute( builder: (_) => const MainNavigation(), settings: settings, ); } } } class SettingsPage extends StatelessWidget { const SettingsPage({super.key}); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: const Text('设置')), body: const Center(child: Text('设置页面')), ); } }