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