1. 安装MGJRouter
- pod ‘MGJRouter’
- https://github.com/meili/MGJRouter
2. 注册MGJRouter
[MGJRouter registerURLPattern:URLPattern toHandler:^(NSDictionary *routerParameters) {
NSString *url = [routerParameters valueForKey:MGJRouterParameterURL];
void(^completion)(id result) = [routerParameters valueForKey:MGJRouterParameterCompletion];
NSDictionary *userInfo = [routerParameters valueForKey:MGJRouterParameterUserInfo];
if (completion) {
completion(result);
}
}];
或
[MGJRouter registerURLPattern:URLPattern toObjectHandler:^id(NSDictionary *routerParameters) {
NSString *url = [routerParameters valueForKey:MGJRouterParameterURL];
void(^completion)(id result) = [routerParameters valueForKey:MGJRouterParameterCompletion];
NSDictionary *userInfo = [routerParameters valueForKey:MGJRouterParameterUserInfo];
if (completion) {
completion(result);
}
return object;
}];
URLPattern有多种写法:
NSString *URLPattern = @"query";
NSString *URLPattern = @"query/user";
NSString *URLPattern = @"query/:keyword";
NSString *URLPattern = @"project://query/:keyword";
3. 注销MGJRouter
[MGJRouter deregisterURLPattern:URLPattern];
4. 调用MGJRouter
[MGJRouter openURL:URL withUserInfo:userInfo completion:^(id result) {
}];
或
id object = [MGJRouter objectForURL:URL withUserInfo:userInfo];
也可配合下面的方法生成URL:
+ (NSString *)generateURLWithPattern:(NSString *)pattern parameters:(NSArray *)parameters;
最终这样调用:
NSString *URL = [MGJRouter generateURLWithPattern:pattern parameters:@[@"user"]];
[MGJRouter openURL:URL];
5. 最后
MGJRouter的运行原理,可从MGJRouter解析中获取。