Commit a02c9808 authored by 李增强's avatar 李增强

m

parent 322db076
...@@ -187,12 +187,17 @@ class BoostContainerState extends NavigatorState { ...@@ -187,12 +187,17 @@ class BoostContainerState extends NavigatorState {
@override @override
Future<bool> maybePop<T extends Object>([T result]) async { Future<bool> maybePop<T extends Object>([T result]) async {
if(routerHistory.isEmpty){
if (routerHistory.isEmpty) {
var c = FlutterBoost.containerManager.onstageSettings;
pop(result); pop(result);
if(c != null && c.name == '/'){
FlutterBoost.singleton.channel.sendEvent("go_moble_home",null);
return false;
}
return true; return true;
} }
final Route<T> route = routerHistory.last; final Route<T> route = routerHistory.last;
final RoutePopDisposition disposition = await route.willPop(); final RoutePopDisposition disposition = await route.willPop();
if (mounted) { if (mounted) {
...@@ -235,7 +240,9 @@ class BoostContainerState extends NavigatorState { ...@@ -235,7 +240,9 @@ class BoostContainerState extends NavigatorState {
FlutterBoost.singleton FlutterBoost.singleton
.closeInternal(uniqueId, result: result as Map<String, dynamic>); .closeInternal(uniqueId, result: result as Map<String, dynamic>);
} else { } else {
FlutterBoost.singleton.closeInternal(uniqueId,); FlutterBoost.singleton.closeInternal(
uniqueId,
);
} }
} }
return true; return true;
...@@ -250,7 +257,8 @@ class BoostContainerState extends NavigatorState { ...@@ -250,7 +257,8 @@ class BoostContainerState extends NavigatorState {
} }
if (multipleRouteMode && routerHistory.isNotEmpty) { if (multipleRouteMode && routerHistory.isNotEmpty) {
ContainerNavigatorObserver.bindContainerManager().willPush(route, routerHistory.last); ContainerNavigatorObserver.bindContainerManager()
.willPush(route, routerHistory.last);
} }
Future<T> future = super.push<T>(newRoute ?? route); Future<T> future = super.push<T>(newRoute ?? route);
...@@ -317,13 +325,15 @@ class ContainerNavigatorObserver extends NavigatorObserver { ...@@ -317,13 +325,15 @@ class ContainerNavigatorObserver extends NavigatorObserver {
void willPush(Route<dynamic> route, Route<dynamic> previousRoute) { void willPush(Route<dynamic> route, Route<dynamic> previousRoute) {
for (NavigatorObserver observer in boostObservers) { for (NavigatorObserver observer in boostObservers) {
if(observer is ContainerNavigatorObserver){ if (observer is ContainerNavigatorObserver) {
if (observer == this) continue; if (observer == this) continue;
ContainerNavigatorObserver containerNavigatorObserver = observer as ContainerNavigatorObserver; ContainerNavigatorObserver containerNavigatorObserver =
observer as ContainerNavigatorObserver;
containerNavigatorObserver.willPush(route, previousRoute); containerNavigatorObserver.willPush(route, previousRoute);
} }
} }
} }
@override @override
void didPush(Route<dynamic> route, Route<dynamic> previousRoute) { void didPush(Route<dynamic> route, Route<dynamic> previousRoute) {
for (NavigatorObserver observer in boostObservers) { for (NavigatorObserver observer in boostObservers) {
...@@ -358,14 +368,14 @@ class ContainerNavigatorObserver extends NavigatorObserver { ...@@ -358,14 +368,14 @@ class ContainerNavigatorObserver extends NavigatorObserver {
} }
class GlobalRouteSettingsManager { class GlobalRouteSettingsManager {
GlobalRouteSettingsManager._(); GlobalRouteSettingsManager._();
static GlobalRouteSettingsManager instance = GlobalRouteSettingsManager._(); static GlobalRouteSettingsManager instance = GlobalRouteSettingsManager._();
final Map<Route,BoostRouteSettings> _routeSettingsMap = <Route,BoostRouteSettings>{}; final Map<Route, BoostRouteSettings> _routeSettingsMap =
<Route, BoostRouteSettings>{};
void addSettings(Route route,BoostRouteSettings settings) { void addSettings(Route route, BoostRouteSettings settings) {
_routeSettingsMap[route] = settings; _routeSettingsMap[route] = settings;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment