routers.dart
2.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import 'package:fluro/fluro.dart';
import 'package:flutter/material.dart';
import 'package:one_poem/account/account_router.dart';
import 'package:one_poem/goods/goods_router.dart';
import 'package:one_poem/home/home_page.dart';
import 'package:one_poem/home/webview_page.dart';
import 'package:one_poem/login/login_router.dart';
import 'package:one_poem/order/order_router.dart';
import 'package:one_poem/setting/setting_router.dart';
import 'package:one_poem/shop/shop_router.dart';
import 'package:one_poem/store/store_router.dart';
import 'package:one_poem/video/video_router.dart';
import 'i_router.dart';
import 'not_found_page.dart';
class Routes {
static String home = '/home';
static String webViewPage = '/webView';
static final List<IRouterProvider> _listRouter = [];
static final FluroRouter router = FluroRouter();
static void initRoutes() {
/// 指定路由跳转错误返回页
router.notFoundHandler = Handler(
handlerFunc: (BuildContext? context, Map<String, List<String>> params) {
debugPrint('未找到目标页');
return const NotFoundPage();
});
router.define(home, handler: Handler(
handlerFunc: (BuildContext? context, Map<String, List<String>> params) => const Home()));
router.define(webViewPage, handler: Handler(handlerFunc: (_, params) {
final String title = params['title']?.first ?? '';
final String url = params['url']?.first ?? '';
return WebViewPage(title: title, url: url);
}));
_listRouter.clear();
/// 各自路由由各自模块管理,统一在此添加初始化
_listRouter.add(ShopRouter());
_listRouter.add(LoginRouter());
_listRouter.add(GoodsRouter());
_listRouter.add(OrderRouter());
_listRouter.add(StoreRouter());
_listRouter.add(AccountRouter());
_listRouter.add(SettingRouter());
_listRouter.add(VideoRouter());
/// 初始化路由
void initRouter(IRouterProvider routerProvider) {
routerProvider.initRouter(router);
}
_listRouter.forEach(initRouter);
}
}