ZZRouter

app的router進化史

? ? ? ?我們在做iOS開發(fā)的時候,通常會在遠程推送,h5與native互相跳轉(zhuǎn)的時候使用到遠程URL;當我們只有幾個url要處理的時候,我們可以直接判斷URL的host用if.else來處理這完全沒有問題;而當我們有幾十個url要處理的時候,再用if.else就很不合適了,代碼會變得非常難維護,而且顯得太low了。這時候我們就要從實際需求考慮優(yōu)化代碼,每次一個遠程URL過來到進入一個VC,是不是都經(jīng)過一些相同的步驟?顯然是的!1.根據(jù)URL和其他條件判斷進入哪個VC(或者調(diào)起哪個服務(wù))2.獲取VC或者服務(wù)3.選擇跳轉(zhuǎn)方式進入VC;這就是app端router跳轉(zhuǎn)的主流程,當然在主流程之外你可能還有一些附加的需求要做,比如埋點,發(fā)個通知等等。

? ? ? ?其中步驟1和3每個url每個app的處理各不相同,而步驟2則可以按主流的rewrite邏輯來處理,即將遠程url轉(zhuǎn)化為nativeurl然后通過nativeurl找到相應(yīng)VC(ZZRouter就是這樣處理的,通過nativeurl找到相應(yīng)VC這一步是通過mediator處理的,基于castaway大神的CTMediator)。再來說說步驟1和3,步驟1其實就是一個redirect的邏輯,步驟3的跳轉(zhuǎn)方式在app里有push,present,switchTabBar,自定義跳轉(zhuǎn)等,在一個app里步驟1和3的這些特性很適合用plist文件配置,然后通過一個小的解析類來處理即可。而如果你想做成通用組件,那么步驟1的步驟3的邏輯則要抽象成protocol,由具體的app來實現(xiàn)。然后ZZRouter就誕生了。

用法

導入ZZRouter的pod后,你需要做如下步驟:

? ? ? ? 1.redirect邏輯和跳轉(zhuǎn)方式的邏輯實現(xiàn):新建不同的類實現(xiàn)ZZRouterJumpTypeProtocol(跳轉(zhuǎn)類型),ZZRouterRedirectProtocol(redirect 邏輯),ZZRouterSequentialIndependenceProtocol(與主流程無關(guān)的邏輯)

? ? ? ? 2.創(chuàng)建方法配置的plist文件,格式如下:


RouterMethod.plist

? ? ? ? ?3.創(chuàng)建url配置的plist文件,格式如下:


UrlList.plsit


? ? ? ? ? 4.在AppDelegate的類里的didFinishLaunchingWithOptions方法中,調(diào)用注冊兩個plist文件的方法:

[ZZRouterHelper registMethodListName:@"RouterMethod" urlListName:@"UrlList"];

? ? ? ? ? ?5.配置url type里面的scheme


配置scheme

? ? ? ? ?6.遠程url規(guī)范:

一.scheme為url type里面配置的scheme

二.host為頁面描述

三.?后面接參數(shù)

四.&拼接參數(shù)

五.scheme,host,params均為小些,符合URL規(guī)范

示例:zzrouter://orderlist?orderid=23245&type=3

問題

關(guān)于ZZRouter如發(fā)現(xiàn)什么問題或bug可以github上建issue或者加qq群:436043199。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 隨著用戶的需求越來越多,對App的用戶體驗也變的要求越來越高。為了更好的應(yīng)對各種需求,開發(fā)人員從軟件工程的角...
    一縷殤流化隱半邊冰霜閱讀 88,161評論 214 1,098
  • 原文鏈接:https://github.com/halfrost/Halfrost-Field/blob/mast...
    hament閱讀 5,824評論 1 31
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,048評論 25 709
  • 夜 文/落楓 青云隨月賞欲賦詩 群星落落字字幻辭 我追 追 卻無果 多忐忑 黃燈此道蟲鳴葉落 行人陌陌顧顧過錯 我...
    ToyIHere閱讀 185評論 0 1
  • 依山伴水的公園道上每天都有揮灑著汗水,聽著呼吸伴著鳥鳴蛙聲,不停的住前跑!
    80357082eadb閱讀 206評論 0 0

友情鏈接更多精彩內(nèi)容