34 lines
1.1 KiB
Dart
34 lines
1.1 KiB
Dart
import 'package:flutter/material.dart';
|
||
import 'package:get/get.dart';
|
||
import 'package:hgdj/tools_base/global_store/store.dart';
|
||
|
||
import '../hj_page/mine/mine_setting/mine_password_logic.dart';
|
||
import '../hj_page/mine/mine_setting/mine_password_page.dart';
|
||
import '../hj_page/splash/splash_page.dart';
|
||
|
||
/// 只保留这两条:其余页面一律 Get.to(() => XxxPage())。
|
||
/// SplashPage 是 initialRoute;
|
||
/// MinePasswordPage 是中间件 redirect 的目标,只能按名解析。
|
||
class AppRoutes {
|
||
static final routePages = [
|
||
GetPage(
|
||
name: SplashPage.routeName,
|
||
page: () => const SplashPage(),
|
||
middlewares: [SplashPasswordMiddleware()],
|
||
),
|
||
GetPage(
|
||
name: MinePasswordPage.routeName,
|
||
page: () => const MinePasswordPage()), //设置锁屏密码
|
||
];
|
||
}
|
||
|
||
class SplashPasswordMiddleware extends GetMiddleware {
|
||
@override
|
||
RouteSettings? redirect(String? route) {
|
||
if (globalStore.password.isEmpty || globalStore.isUnlocked)
|
||
return super.redirect(route);
|
||
return RouteSettings(
|
||
name: MinePasswordPage.routeName, arguments: MinePasswordType.check);
|
||
}
|
||
}
|