34 lines
1.2 KiB
Dart
34 lines
1.2 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:get/get.dart';
|
|
import 'package:hjsq/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(换成 home: 后路由名会变成 "/",埋点 pageKey 丢类名);
|
|
/// 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);
|
|
}
|
|
}
|