File tree Expand file tree Collapse file tree 2 files changed +21
-13
lines changed
Expand file tree Collapse file tree 2 files changed +21
-13
lines changed Original file line number Diff line number Diff line change @@ -80,9 +80,15 @@ class _PageControlState extends State<PageControl> with WidgetsBindingObserver {
8080 _updateMultiViews ();
8181
8282 _routeParser = RouteParser ();
83- _routeInformationProvider = FletRouteInformationProvider (
84- initialRouteInformation: RouteInformation (uri: Uri (path: '/' )),
83+ final defaultRouteName =
84+ WidgetsBinding .instance.platformDispatcher.defaultRouteName;
85+ final initialUri =
86+ Uri .tryParse (defaultRouteName) ?? Uri (path: '/' );
87+ final initial = FletRouteInformationProvider .normalize (
88+ RouteInformation (uri: initialUri),
8589 );
90+ _routeInformationProvider =
91+ FletRouteInformationProvider (initialRouteInformation: initial);
8692
8793 _routeState = RouteState (_routeParser);
8894 _routeState.addListener (_routeChanged);
Original file line number Diff line number Diff line change 11import 'package:flutter/widgets.dart' ;
22
33class FletRouteInformationProvider extends PlatformRouteInformationProvider {
4- FletRouteInformationProvider ({
5- required super .initialRouteInformation,
6- });
7-
8- @override
9- Future <bool > didPushRouteInformation (RouteInformation routeInformation) {
4+ static RouteInformation normalize (RouteInformation routeInformation) {
105 final uri = routeInformation.uri;
11-
12- debugPrint ("FletRouteInformationProvider.didPushRouteInformation: $uri " );
13-
14- // Convert "flet://flet-host/aaa" -> "/aaa" (keep query/fragment)
15- final normalized = RouteInformation (
6+ return RouteInformation (
167 uri: Uri (
178 path: uri.path.isEmpty ? '/' : uri.path,
189 query: uri.query,
1910 fragment: uri.fragment,
2011 ),
2112 state: routeInformation.state,
2213 );
14+ }
15+
16+ FletRouteInformationProvider ({
17+ required super .initialRouteInformation,
18+ });
19+
20+ @override
21+ Future <bool > didPushRouteInformation (RouteInformation routeInformation) {
22+ final normalized = normalize (routeInformation);
23+ debugPrint (
24+ "FletRouteInformationProvider.didPushRouteInformation: ${routeInformation .uri } -> ${normalized .uri }" );
2325
2426 // IMPORTANT: returning the result of super ensures this event is "handled"
2527 // (so iOS won't log "Failed to handle route information...").
You can’t perform that action at this time.
0 commit comments