buildWebViewRoute static method

  1. @useResult
Route<void> buildWebViewRoute(
  1. dynamic settingsOrUriString
)

Builds the route for the in-app WebView. Use when registering webViewRouteName.

Pass RouteSettings from MaterialApp.onGenerateRoute for deep links (uri from RouteSettings.name query or RouteSettings.arguments). Or pass settingsOrUriString as a String for programmatic use. Only http and https schemes are allowed.

Returns a MaterialPageRoute for the WebView screen or the error screen if the URI is invalid.

Implementation

@useResult
static Route<void> buildWebViewRoute(dynamic settingsOrUriString) {
  final String uriString = _uriStringFromRouteSettings(settingsOrUriString);
  final uri = Uri.tryParse(uriString);
  final routeName = '$webViewRouteName?uri=${Uri.encodeComponent(uriString)}';
  if (uri == null || (uri.scheme != 'http' && uri.scheme != 'https')) {
    return _buildWebViewErrorRoute(routeName, uriString);
  }
  return _buildWebViewScreenRoute(routeName, uri);
}