diff --git a/HHRouter/HHRouter.m b/HHRouter/HHRouter.m index 6580262..68b65dd 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 @@ -105,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"]]; @@ -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; @@ -185,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];