import 'package:chicken_farm/core/config/app_config.dart'; import 'package:chicken_farm/core/utils/loading.dart'; import 'package:chicken_farm/routes/route_provider.dart'; import 'package:chicken_farm/core/services/sync_service.dart'; import 'package:chicken_farm/core/services/connectivity_service.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); await AppConfig.init(); // 初始化配置 final container = ProviderContainer(); // 初始化LoadingUtil LoadingUtil.init(container); // 初始化同步服务 final syncService = SyncService(); syncService.startAutoSync(); runApp( ProviderScope( child: MyApp(), ), ); } class MyApp extends ConsumerWidget { const MyApp({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { final goRouter = ref.watch(goRouterProvider); // 监听网络状态变化,如果变为连接状态则尝试同步 ref.listen(isConnectedProvider, (_, snapshot) { snapshot.when( data: (data) { if (data == true) { // 网络恢复,尝试同步离线数据 final syncService = SyncService(); syncService.syncPendingOperations(); } }, loading: () => null, error: (error, stackTrace) => null, ); }); return MaterialApp.router( title: 'Chicken Farm', debugShowCheckedModeBanner: false, theme: ThemeData( useMaterial3: true, colorScheme: ColorScheme.fromSeed(seedColor: Colors.green), ), routerConfig: goRouter, ); } }