Blame view

lib/route/route.dart 4.73 KB
2a29701f   liangchengyou   feat:提交代码
1
2
  import 'package:flutter/cupertino.dart';
  import 'package:flutter/material.dart';
a117a5a3   liangchengyou   feat:更新代码
3
  import 'package:wow_english/app/splash_page.dart';
bfb40cd0   liangchengyou   feat:忘记密码获取验证码
4
  import 'package:wow_english/common/pages/wow_web_page.dart';
95edef4f   liangchengyou   feat:更新适配代码
5
  import 'package:wow_english/home/home_page.dart';
60e47f7c   liangchengyou   feat:课程选择功能
6
  import 'package:wow_english/lessons/lesson_page.dart';
d35a4e87   liangchengyou   feat:磨耳朵功能UI
7
  import 'package:wow_english/listen/listen_page.dart';
1d5315dd   liangchengyou   feat:添加字体,调整文件结构
8
9
10
  import 'package:wow_english/login/forgetpwd/forget_password_home_page.dart';
  import 'package:wow_english/login/loginpage/login_page.dart';
  import 'package:wow_english/login/setpwd/set_pwd_page.dart';
624214d0   liangchengyou   feat:看题选字/选图UI和部分逻辑
11
12
  import 'package:wow_english/practice/chosetopic/topicpicture/topic_picture_page.dart';
  import 'package:wow_english/practice/chosetopic/topicword/topic_word_page.dart';
9d080046   liangchengyou   feat:视频跟读逻辑
13
  import 'package:wow_english/repeatafter/repeat_after_page.dart';
d1d32220   liangchengyou   feat:兑换课程+购买记录
14
15
16
  import 'package:wow_english/shop/exchane/exchange_lesson_page.dart';
  import 'package:wow_english/shop/exchangelist/exchange_lesson_list_page.dart';
  import 'package:wow_english/shop/home/shop_home_page.dart';
2a29701f   liangchengyou   feat:提交代码
17
  import 'package:wow_english/tab/tab_page.dart';
22b7d4da   Key   feat: user, api path
18
  import 'package:wow_english/user/user_page.dart';
119ba920   liangchengyou   feat:视频播放器
19
  import 'package:wow_english/video/lookvideo/look_video_page.dart';
2a29701f   liangchengyou   feat:提交代码
20
21
22
23
24
  
  
  class AppRouteName {
    static const String splash = 'splash';
    static const String login = 'login';
95edef4f   liangchengyou   feat:更新适配代码
25
    static const String home = 'home';
4bf67b91   liangchengyou   feat:设置密码
26
    static const String fogPwd = 'fogPwd';
1d5315dd   liangchengyou   feat:添加字体,调整文件结构
27
    static const String setPwd = 'setPwd';
bfb40cd0   liangchengyou   feat:忘记密码获取验证码
28
    static const String webView = 'webView';
60e47f7c   liangchengyou   feat:课程选择功能
29
    static const String lesson = 'lesson';
d35a4e87   liangchengyou   feat:磨耳朵功能UI
30
    static const String listen = 'listen';
d1d32220   liangchengyou   feat:兑换课程+购买记录
31
32
33
    static const String shop = 'shop';
    static const String exLesson = 'exLesson';
    static const String exList = 'exList';
9d080046   liangchengyou   feat:视频跟读逻辑
34
    static const String reAfter = 'reAfter';
624214d0   liangchengyou   feat:看题选字/选图UI和部分逻辑
35
36
    static const String topicPic = 'topicPic';
    static const String topicWord = 'topicWord';
22b7d4da   Key   feat: user, api path
37
    static const String user = 'user';
119ba920   liangchengyou   feat:视频播放器
38
    static const String lookVideo = 'lookVideo';
2a29701f   liangchengyou   feat:提交代码
39
40
41
42
43
44
45
    static const String tab = '/';
  }
  
  class AppRouter {
    static final navigatorKey = GlobalKey<NavigatorState>();
    // App 根节点Context
    static BuildContext get context => navigatorKey.currentContext!;
22b7d4da   Key   feat: user, api path
46
  
2a29701f   liangchengyou   feat:提交代码
47
48
49
50
51
    static Route<dynamic> generateRoute(RouteSettings settings) {
      switch (settings.name) {
        case AppRouteName.splash:
          return PageRouteBuilder(
              opaque: false,
a117a5a3   liangchengyou   feat:更新代码
52
              pageBuilder: (_,__,___) => const SplashPage(),
2a29701f   liangchengyou   feat:提交代码
53
54
55
              transitionDuration: Duration.zero,
              transitionsBuilder: (_, __, ___, child) => child);
        case AppRouteName.login:
062f0df2   liangchengyou   feat:登录模块代码提交
56
          return CupertinoPageRoute(builder: (_) =>  const LoginPage());
95edef4f   liangchengyou   feat:更新适配代码
57
58
        case AppRouteName.home:
          return CupertinoPageRoute(builder: (_) =>  const HomePage());
4bf67b91   liangchengyou   feat:设置密码
59
        case AppRouteName.fogPwd:
1d5315dd   liangchengyou   feat:添加字体,调整文件结构
60
          return CupertinoPageRoute(builder: (_) =>  const ForgetPasswordHomePage());
60e47f7c   liangchengyou   feat:课程选择功能
61
62
        case AppRouteName.lesson:
          return CupertinoPageRoute(builder: (_) =>  const LessonPage());
d35a4e87   liangchengyou   feat:磨耳朵功能UI
63
64
        case AppRouteName.listen:
          return CupertinoPageRoute(builder: (_) =>  const ListenPage());
d1d32220   liangchengyou   feat:兑换课程+购买记录
65
66
67
68
69
70
        case AppRouteName.shop:
          return CupertinoPageRoute(builder: (_) =>  const ShopHomePage());
        case AppRouteName.exLesson:
          return CupertinoPageRoute(builder: (_) =>  const ExchangeLessonPage());
        case AppRouteName.exList:
          return CupertinoPageRoute(builder: (_) =>  const ExchangeLessonListPage());
9d080046   liangchengyou   feat:视频跟读逻辑
71
72
        case AppRouteName.reAfter:
          return CupertinoPageRoute(builder: (_) =>  const RepeatAfterPage());
22b7d4da   Key   feat: user, api path
73
74
        case AppRouteName.user:
          return CupertinoPageRoute(builder: (_) =>  const UserPage());
624214d0   liangchengyou   feat:看题选字/选图UI和部分逻辑
75
76
77
78
        case AppRouteName.topicPic:
          return CupertinoPageRoute(builder: (_) =>  const TopicPicturePage());
        case AppRouteName.topicWord:
          return CupertinoPageRoute(builder: (_) =>  const TopicWordPage());
119ba920   liangchengyou   feat:视频播放器
79
80
        case AppRouteName.lookVideo:
          return CupertinoPageRoute(builder: (_) =>  const LookVideoPage());
1d5315dd   liangchengyou   feat:添加字体,调整文件结构
81
        case AppRouteName.setPwd:
4bf67b91   liangchengyou   feat:设置密码
82
          final phoneNum = (settings.arguments as Map)['phoneNumber'] as String;
1d5315dd   liangchengyou   feat:添加字体,调整文件结构
83
          return CupertinoPageRoute(builder: (_) =>  SetPassWordPage(phoneNum: phoneNum));
bfb40cd0   liangchengyou   feat:忘记密码获取验证码
84
85
86
87
        case AppRouteName.webView:
          final urlStr = (settings.arguments as Map)['urlStr'] as String;
          final webViewTitle = (settings.arguments as Map)['webViewTitle'] as String;
          return CupertinoPageRoute(builder: (_) =>  WowWebViewPage(urlStr: urlStr,webViewTitle: webViewTitle,));
2a29701f   liangchengyou   feat:提交代码
88
89
90
91
92
93
94
95
96
97
98
99
100
101
        case AppRouteName.tab:
          return PageRouteBuilder(
              opaque: false,
              settings: const RouteSettings(name: AppRouteName.tab),
              transitionDuration: Duration.zero,
              pageBuilder: (_,__,___) => const TabPage(),
              transitionsBuilder: (_, __, ___, child) => child);
        default:
          return CupertinoPageRoute(
              builder: (_) => Scaffold(
                  body: Center(
                      child: Text('No route defined for ${settings.name}'))));
      }
    }
22b7d4da   Key   feat: user, api path
102
  }