WQRoute 0.3.0

WQRoute 0.3.0

测试已测试
Lang语言 Obj-CObjective C
许可协议 MIT
Released最后发布2017年6月

Neojayla25349维护。



WQRoute 0.3.0

  • 作者
  • jayla25349

例子

要运行示例项目,首先克隆仓库,然后从 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 文件。