Files
tuiche/lib/common/util/NotificationRouteManager.dart
2025-09-11 09:38:14 +08:00

34 lines
968 B
Dart

import 'package:ef/ef.dart';
import 'package:get_storage/get_storage.dart';
/// 单例通知路由管理
class NotificationRouteManager {
static final NotificationRouteManager _instance =
NotificationRouteManager._internal();
factory NotificationRouteManager() => _instance;
NotificationRouteManager._internal();
final box = GetStorage();
/// 保存待跳转的路由
void savePendingRoute(String route, {Map<String, dynamic>? arguments}) {
box.write("pendingRoute", {
"route": route,
"arguments": arguments,
});
}
/// 立即尝试执行跳转(如果 GetMaterialApp 已就绪)
void handlePendingRoute() {
var pending = box.read("pendingRoute");
if (pending != null) {
String route = pending["route"];
var args = pending["arguments"];
Future.delayed(const Duration(milliseconds: 200), () {
Get.toNamed(route, arguments: args);
});
box.remove("pendingRoute");
}
}
}