JLRoutes原理:
1.它是通过url scheme来实现app内部,web到app,app与app之间跳转的第三方库
2代码分析:JLRoutes是个单例:有个字典routeControllersMap,然后字典是以scheme为key,routes(NSArray)为value,每次调用addRoute方法会将注册的url转换为JLRRouteDefinition类型,存在key为scheme的routes里。openurl时查找route,找到即回调block,具体的跳转我们可以在block里实现;
使用步骤
1 导入JLJLRoutes Roocoapods,编辑podfile,pod 'JLRoutes',然后pod install 即可
2. 用Xcode打开.xcworkspace文件,打开项目的info.plist文件,并增加URL Types,在其中添加自定的scheme,URL identifier 最好设置复杂些 , 保证其唯一性可以像bundle id一样定义 如图:
3 .切换到Appdelegate.m文件,在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法中加入route{{ :cms:文档教程:iosroute1.png?}}
如图:
4.实现- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary*)options方法,每次openUrl时都会调这个方法用来解析url
如图:
5.切换到想要route跳转的实现文件里,在跳转方法里用自定义死的route,通过openurl方式跳转如图: