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/

浙公网安备 33010602011771号