要运行示例项目,首先克隆仓库,然后从 Example 目录运行 pod install
此库需要 iOS 7.0+ 和 Xcode 8.0+。
WQRoute 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中:
pod "WQRoute"
然后,运行以下命令
$ pod install
@implementation WQLoginVC
+ (void)load {
ROUTE(@"^/present/loginVC/(\\S+)/(\\S+)$", presentLoginVC:)
ROUTE(@"^/user/login/(\\S+)/(\\S+)$", userLogin:username:password:)
}
//The first parameter must be a WQRouteRequest
+ (void)presentLoginVC:(WQRouteRequest *)request {
WQLoginVC *vc = [WQLoginVC controller];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];
[[[[UIApplication sharedApplication] delegate] window].rootViewController presentViewController:nav animated:YES completion:nil];
}
//The first parameter must be a WQRouteRequest
//WQRouter will automatic injection parameters(eg. username and password)
+ (void)userLogin:(WQRouteRequest *)request username:(NSString *)username password:(NSString *)password{
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
NSMutableDictionary *parameters = [NSMutableDictionary dictionaryWithDictionary:request.queryParameters];
[parameters setValue:username forKey:@"username"];
[parameters setValue:password forKey:@"password"];
[manager GET:@"http://www.baidu.com" parameters:parameters progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
if (request.callBack) {
request.callBack(request, responseObject, nil);
}
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
if (request.callBack) {
request.callBack(request, nil, error);
}
}];
}
@end
@implementation WQAppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[[WQRouter defaultRouter] registerMiddleware:[WQRouteURLVerifyMiddleware middlewareWithScheme:@"testzzb" host:@"woqugame"]];
[[WQRouter defaultRouter] registerMiddleware:[WQRouteURLParserMiddleware new]];
return YES;
}
@end
- (void)test1 {
NSString *urlString = @"testzzb://woqugame/present/loginVC/admin/123456789/";
[[WQRouter defaultRouter] routeURLString:urlString data:nil callBack:nil];
}
- (void)test2 {
[SVProgressHUD show];
NSString *urlString = @"testzzb://woqugame/user/login/admin/123456789";
[[WQRouter defaultRouter] routeURLString:urlString data:nil callBack:^(WQRouteRequest * _Nonnull request, id _Nullable response, NSError * _Nullable error) {
if (error) {
[SVProgressHUD showErrorWithStatus:error.localizedDescription];
} else {
[SVProgressHUD dismiss];
NSString *string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Test api service" message:string delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertView show];
}
}];
}
jayla25349
WQRoute 遵循 MIT 许可协议。有关更多信息,请参阅 LICENSE 文件。