Initial commit: Flutter 无书应用项目
This commit is contained in:
111
lib/routes/app_routes.dart
Normal file
111
lib/routes/app_routes.dart
Normal file
@@ -0,0 +1,111 @@
|
||||
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<String> 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<dynamic> 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('设置页面')),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user