import 'package:fluro/fluro.dart' as fluro; import 'package:flutter/material.dart'; import 'package:aslan/chatvibe_core/routes/at_router_init.dart'; import 'package:aslan/chatvibe_features/country/country_route.dart'; import 'package:aslan/chatvibe_features/index/main_route.dart'; import 'package:aslan/chatvibe_features/chat/at_chat_route.dart'; import 'package:aslan/chatvibe_features/family/family_route.dart'; import 'package:aslan/chatvibe_features/dynamic/dynamic_route.dart'; import 'package:aslan/chatvibe_features/home/coupon/coupon_route.dart'; import 'package:aslan/chatvibe_features/store/store_route.dart'; import 'package:aslan/chatvibe_features/index/index_page.dart'; import 'package:aslan/chatvibe_features/user/settings/settings_route.dart'; import 'package:aslan/chatvibe_features/wallet/wallet_route.dart'; import 'package:aslan/chatvibe_features/auth/login_route.dart'; import 'package:aslan/chatvibe_features/room/voice_room_route.dart'; import 'package:aslan/chatvibe_core/routes/at_404_page.dart'; class ATRoutes { static String home = '/'; static List _listRouter = []; static void configureRoutes(fluro.FluroRouter router) { /// 指定路由跳转错误返回页 router.notFoundHandler = fluro.Handler(handlerFunc: (BuildContext? context, Map> params) { debugPrint('未找到目标页'); return ATWidgetNotFound(); }); router.define(home, handler: fluro.Handler(handlerFunc: (BuildContext? context, Map> params) => ATIndexPage())); _listRouter.clear(); /// 各自路由由各自模块管理,统一在此添加初始化 /// 登陆路由组 _listRouter.add(LoginRouter()); _listRouter.add(CountryRoute()); _listRouter.add(SettingsRoute()); _listRouter.add(VoiceRoomRoute()); _listRouter.add(MainRoute()); _listRouter.add(WalletRoute()); _listRouter.add(StoreRoute()); _listRouter.add(ATChatRouter()); _listRouter.add(CouponRoute()); _listRouter.add(FamilyRoute()); _listRouter.add(DynamicRoute()); /// 初始化路由 for (var routerProvider in _listRouter) { routerProvider.initRouter(router); } } } // PS:路由使用方法 // 1、不需要传参的 替换所有历史记录 /// ATNavigatorUtils.push(context, LoginRouter.loginPage, replace: true); /// 2、不需要传参的 不替换历史记录 /// ATNavigatorUtils.push(context, LoginRouter.loginPage, replace: false); // 需要传参的 // 3、ATNavigatorUtils.push(context,'${ATRoutes.webViewPage}?param1=${Uri.encodeComponent(content1)}¶m2=${Uri.encodeComponent(content2)}', replace: true); // 4、ATNavigatorUtils.push(context, '${MarketRouter.hotCoin}?id=xxxxxxx'); // 有返回值跳转 /// 5、ATNavigatorUtils.pushResult(context, MarketRouter.hotCoin, (result){ // setState(() { // //result是返回的结果 // TestModel model = result; // _name = model.name; // }); // }); // 返回上一级 // 6、ATNavigatorUtils.goBack(context); // 带参数返回上一级 // 7、ATNavigatorUtils.goBackWithParams(context, result);