generateRoute<T extends Object> method

Route? generateRoute<T extends Object>(
  1. RouteSettings settings
)

ChatUIKit 路由拦截器, 可以在 onGenerateRoute 中进行拦截,如果拦截失败,再进行你自己的路由跳转。

  onGenerateRoute: (settings) {
    return ChatUIKitRoute().generateRoute(settings) ??
        MaterialPageRoute(
            builder: (context) {
              return const HomePage();
            },
        );
  },

Implementation

Route? generateRoute<T extends Object>(RouteSettings settings) {
  if (settings.arguments is ChatUIKitViewArguments) {
    ChatUIKitWidgetBuilder? builder = uikitRoutes[settings.name];
    if (builder != null) {
      final route = MaterialPageRoute(
        builder: (context) {
          return builder(context, settings.arguments);
        },
        settings: settings,
      );

      return route;
    }
    return null;
  } else {
    return null;
  }
}