From bf42de32d6c792d7b4bcd401098e41e5e8685390 Mon Sep 17 00:00:00 2001 From: zlb Date: Tue, 7 Mar 2017 11:15:22 +0800 Subject: [PATCH 1/2] support Url Scheme --- HHRouter/HHRouter.m | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/HHRouter/HHRouter.m b/HHRouter/HHRouter.m index 6580262..93c5f21 100644 --- a/HHRouter/HHRouter.m +++ b/HHRouter/HHRouter.m @@ -23,6 +23,9 @@ #import "HHRouter.h" #import +const static NSString *HHRouterScheme = @"HHRouterScheme"; +const static NSString *HHRouterHost = @"HHRouterHost"; + @interface HHRouter () @property (strong, nonatomic) NSMutableDictionary *routes; @end @@ -174,8 +177,11 @@ - (NSMutableDictionary *)routes - (NSArray *)pathComponentsFromRoute:(NSString *)route { NSMutableArray *pathComponents = [NSMutableArray array]; + NSURLComponents *urlComponents = [NSURLComponents componentsWithString:[route stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; NSURL *url = [NSURL URLWithString:[route stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; + [pathComponents addObject:urlComponents.scheme ?: HHRouterScheme]; + [pathComponents addObject:urlComponents.host ?: HHRouterHost]; for (NSString *pathComponent in url.path.pathComponents) { if ([pathComponent isEqualToString:@"/"]) continue; if ([[pathComponent substringToIndex:1] isEqualToString:@"?"]) break; From 023ace937c4fe3a383547d2f8b95a93e3a799809 Mon Sep 17 00:00:00 2001 From: zlb Date: Tue, 7 Mar 2017 12:04:43 +0800 Subject: [PATCH 2/2] 11 --- HHRouter/HHRouter.m | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/HHRouter/HHRouter.m b/HHRouter/HHRouter.m index 93c5f21..68b65dd 100644 --- a/HHRouter/HHRouter.m +++ b/HHRouter/HHRouter.m @@ -108,7 +108,7 @@ - (NSDictionary *)paramsInRoute:(NSString *)route { NSMutableDictionary *params = [NSMutableDictionary dictionary]; - params[@"route"] = [self stringFromFilterAppUrlScheme:route]; + params[@"route"] = route; NSMutableDictionary *subRoutes = self.routes; NSArray *pathComponents = [self pathComponentsFromRoute:params[@"route"]]; @@ -191,18 +191,6 @@ - (NSArray *)pathComponentsFromRoute:(NSString *)route return [pathComponents copy]; } -- (NSString *)stringFromFilterAppUrlScheme:(NSString *)string -{ - // filter out the app URL compontents. - for (NSString *appUrlScheme in [self appUrlSchemes]) { - if ([string hasPrefix:[NSString stringWithFormat:@"%@:", appUrlScheme]]) { - return [string substringFromIndex:appUrlScheme.length + 2]; - } - } - - return string; -} - - (NSArray *)appUrlSchemes { NSMutableArray *appUrlSchemes = [NSMutableArray array];