這篇文章主要介紹了Android組件化開發(fā)路由的示例分析,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)長期為上千多家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為正陽企業(yè)提供專業(yè)的成都網(wǎng)站制作、網(wǎng)站建設(shè),正陽網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
設(shè)計(jì)目的
解耦
跨模塊跳轉(zhuǎn)
方便服務(wù)器配置schema,實(shí)現(xiàn)動態(tài)配置跳轉(zhuǎn)目標(biāo)
對外部提供遠(yuǎn)程訪問的功能,實(shí)現(xiàn)跨應(yīng)用調(diào)用響應(yīng)
主要功能點(diǎn)
支持intent,http,schema三種跳轉(zhuǎn)
路由表支持xml配置,可自定義,支持多路徑
有攔截器
同時(shí)支持反射和隱式意圖
支持結(jié)果回調(diào)
支持參數(shù)傳遞
鏈?zhǔn)秸{(diào)用
支持url模式傳參
支持配置多個(gè)webview 實(shí)現(xiàn)指定非默認(rèn)的webview啟動url
支持配置多個(gè)prefix
重要的類
VpRouter 單例模式 入口類
AbsRouter 路由抽象類 主要代碼
RouterTable 路由表
IRouterInterceptor(攔截器) IRouterResultCallback(結(jié)果回調(diào))
類圖
加載路由配置文件
//導(dǎo)入路由表 在application的onCreate中 VpRouter.load(getApplicationContext(),"router.xml");
路由配置文件
<?xml version="1.0" encoding="utf-8" ?> <root> schema-prefix> <prefix>vf://</prefix> <prefix>vipjr://</prefix> <prefix>vpjr://</prefix> </schema-prefix> <default-webview>vpjr://h6.page</default-webview> <rule> <schema>vpjr://h6.page</schema> <!--<action>webview</action>--> <class>com.vip.hybrid.h6container.H5WebViewActivity</class> </rule> <rule> <schema>vpjr://h6.page.pay</schema> <!--<action>webview</action>--> <class>com.vip.vpal.paydesk.support.h6.H5ContainerActivity</class> </rule> <rule> <schema>vpjr://paycode.entry</schema> <!--<action>1111</action>--> <class>com.vip.vpal.paycode.presentation.activity.PaymentEntryActivity</class> </rule> <rule> <schema>vpjr://guide</schema> <!--<action>basemodule.test.mainactivity</action>--> <class>com.vip.vf.android.GuideActivity</class> </rule> </root>
schema-prefix: 前綴
default-webview: 默認(rèn)webview的schema
每一個(gè)rule節(jié)點(diǎn)代表一組路由規(guī)則,被解析成Rule對象
使用示例
//啟動url 默認(rèn)的webview VpRouter.get().context(this).jump("http://www.vip.com?web_title=唯品會"); //指定webview啟動 VpRouter.get().context(this).webView("vpjr://h6.page.pay").jump("http://www.vip.com"); //最復(fù)雜的使用 VpRouter.get() .context(this) .setInterceptor(new IRouterInterceptor() { @Override public boolean cancel() { return false;//return true 會把本次跳轉(zhuǎn)攔截掉 } @Override public Bundle addExtras() { return null;//返回Bundle 會添加到Intent中 } }) .setResultCallback(new IRouterResultCallback() { @Override public void onSuccess() { //跳轉(zhuǎn)成功的回調(diào) } @Override public void onFail(RouterError error) { //跳轉(zhuǎn)失敗的回調(diào) LogUtils.d("error:"+error); } }) .extra("key","value") .extra("key2","value2") .flags(Intent.FLAG_ACTIVITY_SINGLE_TOP) .jump("vf://paycode.entry?title=1111");//支持url傳參 //最簡單的使用 VpRouter.get().context(this).jump("vpjr://guide"); VpRouter.get().context(this).jumpForResult("vpjr://guide",REQUEST_CODE);//REQUEST_CODE>;
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Android組件化開發(fā)路由的示例分析”這篇文章對大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!
標(biāo)題名稱:Android組件化開發(fā)路由的示例分析
URL網(wǎng)址:http://chinadenli.net/article14/gicige.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、服務(wù)器托管、定制開發(fā)、網(wǎng)站排名、虛擬主機(jī)、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)