The RouteInformationParser takes the RouteInformation from a RouteInformationProvider and parses it into a user-defined data type. This implementation parses route information into DefaultRoute objects.
Properties
Whether the parser has been initialized.
Optional default route to use on initialization.
Optional default route path to use on initialization.
setInitialRouteFunction
DefaultRoute Function(Uri initialRoute)?
Optional function to set the initial route from a URI.
setInitialRoutePathFunction
String Function(Uri initialRoute)?
Optional function to set the initial route path from a URI.
Whether to enable debug logging.
Constructor
DefaultRouteInformationParser({
DefaultRoute? defaultRoute,
String? defaultRoutePath,
DefaultRoute Function(Uri initialRoute)? setInitialRouteFunction,
String Function(Uri initialRoute)? setInitialRoutePathFunction,
bool debugLog = false
})
Optional default route to use on initialization.
Optional default route path (must start with ’/’).
setInitialRouteFunction
DefaultRoute Function(Uri initialRoute)?
Optional function to set initial route from URI.
setInitialRoutePathFunction
String Function(Uri initialRoute)?
Optional function to set initial route path from URI.
Whether to enable debug logging.
Methods
Future<DefaultRoute> parseRouteInformation(RouteInformation routeInformation)
Parses the route information into a DefaultRoute. This method is called by the Flutter framework.
The route information to parse.
Returns a Future that resolves to a DefaultRoute.
RouteInformation? restoreRouteInformation(DefaultRoute configuration)
Restores route information from a DefaultRoute. This method is called by the Flutter framework.
The DefaultRoute to convert to RouteInformation.
Returns a RouteInformation object or null.
Example
// Basic usage
final parser = DefaultRouteInformationParser(
defaultRoutePath: '/home',
debugLog: true,
);
// With custom initial route function
final parser = DefaultRouteInformationParser(
setInitialRouteFunction: (uri) {
// Custom logic to determine initial route
if (uri.path == '/') {
return DefaultRoute.fromUrl('/home');
}
return DefaultRoute.fromUri(uri);
},
);
// With default route object
final parser = DefaultRouteInformationParser(
defaultRoute: DefaultRoute(
path: '/home',
label: 'home',
),
);
// Use in MaterialApp.router
MaterialApp.router(
routerDelegate: routerDelegate,
routeInformationParser: parser,
);