JLRoutes笔记
1.在info.plist中添加
<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLName</key> <string>aaa.JLRoutes</string> <key>CFBundleURLSchemes</key> <array> <string>JLRoutesOne</string> <string>JLRoutesTwo</string> <string>JLRoutesThree</string> </array> </dict> </array>
2 注册JLRoutes
当用[JLRoutes globalRoutes]这种全局方式注册时,openURL方法中拦截也要用return [[JLRoutes globalRoutes] routeURL:url]; 这样 当调用[UIApplication sharedApplication] openURL方法时,会先走Appdelegate的openURL方法,若是returnYES,则会立马回调注册的那个地方 //注册全局JLRoutes [[JLRoutes globalRoutes] addRoute:@"/:controller" handler:^BOOL(NSDictionary<NSString *,id> * _Nonnull parameters) { /* { JLRoutePattern = "/:controller"; JLRouteScheme = JLRoutesGlobalRoutesScheme; JLRouteURL = "JLRoutesOne://OneNextViewController"; controller = OneNextViewController; } */ return YES; //一旦匹配 , 立即返回YES }]; 注意下/:controller这样写,/:必须, controller可以换成其他的单词
3 自定义命名空间
也就是注册时用的是JLRoutes routesForScheme: 对象,这时
openURL方法中拦截也要用return [JLRoutes routesForScheme:XXX] routeURL
逻辑同理第2步
//自定义命名空间注册
[[JLRoutes routesForScheme:@"JLRoutesOne"] addRoute:@"/:tabController" handler:^BOOL(NSDictionary<NSString *,id> * _Nonnull parameters){
/*
{
JLRoutePattern = "/:tabController";
JLRouteScheme = JLRoutesOne;
JLRouteURL = "JLRoutesOne://OneNextViewController";
tabController = OneNextViewController;
}
*/
return YES;
}];
此文仅为鄙人学习笔记之用,朋友你来了,如有不明白或者建议又或者想给我指点一二,请私信我。liuw_flexi@163.com/QQ群:582039935.
我的gitHub: (学习代码都在gitHub)
https://github.com/nwgdegitHub/