更新安卓通知栏提示
This commit is contained in:
33
lib/common/util/NotificationRouteManager.dart
Normal file
33
lib/common/util/NotificationRouteManager.dart
Normal file
@@ -0,0 +1,33 @@
|
||||
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");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user