JLRoutes原理:
1.它是通過url scheme來實現(xiàn)app內部,web到app巴元,app與app之間跳轉的第三方庫
2代碼分析:JLRoutes是個單例:有個字典routeControllersMap偿洁,然后字典是以scheme為key务豺,routes(NSArray)為value雏掠,每次調用addRoute方法會將注冊的url轉換為JLRRouteDefinition類型蔚出,存在key為scheme的routes里杀赢。openurl時查找route旦万,找到即回調block谜嫉,具體的跳轉我們可以在block里實現(xiàn)萎坷;
使用步驟
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.實現(xiàn)- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary*)options方法象泵,每次openUrl時都會調這個方法用來解析url
如圖:
5.切換到想要route跳轉的實現(xiàn)文件里,在跳轉方法里用自定義死的route斟叼,通過openurl方式跳轉如圖: