iOS路由(MGJRouter)的实现

2020-01-21 07:21:24刘景俊
  • 可以处理各种各样的url
  • 支持通配符
  • 支持多个scheme
  • 比较纯粹,不支持打开页面后的值回传。要自己再加工。

    MGJRouter

    1. 代码简单易懂
    2. 功能全面
    3. 支持push值回传
    4. 支持多scheme
    5. openUrl时支持一个userInfo (造成了跟系统的不统一,多出来的参数还是可以放到url中,传对象的时候有点用)(模块内部传对象可以用,模块间的话不应该传对象,会造成耦合)

    MGJRouter

    MGJRouter就一个单例类,使用前需要通过注册组件,调用方通过URL调用服务方页面,通过路由表的映射关系进行关联,调用方可以传入复 杂的参数、对象等。

    基本跳转主要是注册组件,调用openURl方法,传入参数即可实现。

    
    [MGJRouter registerURLPattern:@"mgj://foo/bar" toHandler:^(NSDictionary *routerParameters) {
      NSLog(@"routerParameterUserInfo:%@", routerParameters[MGJRouterParameterUserInfo]);
    }];
    
    [MGJRouter openURL:@"mgj://foo/bar"];
    

    使用一个类来统一管理注册的方法,再load方法中进行注册,就不会到处看到注册的代码,方便管理。