JLRoutes可简单地处理复杂的URL schemes,无需进行任何类型的URL或者字符串解析。
功能:
Simple API with minimal impact to existing codebases
Parse any number of parameters interleaved throughout the URL
Wildcard parameter support
Seamlessly parses out query string and fragment parameters and passes them along as part of the parameters dictionary
Route prioritization
Scheme namespaces to easily segment routes and block handlers for multiple schemes
Return NO from a handler block for JLRoutes to look for the next matching route
Optional verbose logging
Pretty-print the whole routing table
No dependencies other than Foundation
简单示例
// in your app delegate:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// ...
[JLRoutes addRoute:@"/user/view/:userID" handler:^BOOL(NSDictionary *parameters) {
NSString *userID = parameters[@"userID"]; // defined in the route by specifying ":userID"
// present UI for viewing user with ID 'userID'
return YES; // return YES to say we have handled the route
}];
// ...
return YES;
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [JLRoutes routeURL:url];
}