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? 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"); } } }