JLRoutes笔记
阅读原文时间:2023年07月11日阅读:1

1.在info.plist中添加

CFBundleURLTypes
CFBundleURLName aaa.JLRoutes CFBundleURLSchemes JLRoutesOne JLRoutesTwo JLRoutesThree

2 注册JLRoutes

当用[JLRoutes globalRoutes]这种全局方式注册时,openURL方法中拦截也要用return [[JLRoutes globalRoutes] routeURL:url];

这样 当调用[UIApplication sharedApplication] openURL方法时,会先走Appdelegate的openURL方法,若是returnYES,则会立马回调注册的那个地方

//注册全局JLRoutes
[[JLRoutes globalRoutes] addRoute:@"/:controller" handler:^BOOL(NSDictionary * _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 * _Nonnull parameters){

/*

{

JLRoutePattern = "/:tabController";

JLRouteScheme = JLRoutesOne;

JLRouteURL = "JLRoutesOne://OneNextViewController";

tabController = OneNextViewController;

}

*/

return YES;

}];

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章