这篇文章主要介绍了Android组件化开发路由的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
创新互联长期为上千多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为正阳企业提供专业的成都网站制作、网站建设,正阳网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。
设计目的
- 解耦 
- 跨模块跳转 
- 方便服务器配置schema,实现动态配置跳转目标 
- 对外部提供远程访问的功能,实现跨应用调用响应 
主要功能点
- 支持intent,http,schema三种跳转 
- 路由表支持xml配置,可自定义,支持多路径 
- 有拦截器 
- 同时支持反射和隐式意图 
- 支持结果回调 
- 支持参数传递 
- 链式调用 
- 支持url模式传参 
- 支持配置多个webview 实现指定非默认的webview启动url 
- 支持配置多个prefix 
重要的类
- VpRouter 单例模式 入口类 
- AbsRouter 路由抽象类 主要代码 
- RouterTable 路由表 
- IRouterInterceptor(拦截器) IRouterResultCallback(结果回调) 
类图

加载路由配置文件
//导入路由表 在application的onCreate中 VpRouter.load(getApplicationContext(),"router.xml");
路由配置文件
schema-prefix> vf:// vipjr:// vpjr:// vpjr://h6.page vpjr://h6.page com.vip.hybrid.h6container.H5WebViewActivity vpjr://h6.page.pay com.vip.vpal.paydesk.support.h6.H5ContainerActivity vpjr://paycode.entry com.vip.vpal.paycode.presentation.activity.PaymentEntryActivity vpjr://guide com.vip.vf.android.GuideActivity 
- schema-prefix: 前缀 
- default-webview: 默认webview的schema 
- 每一个rule节点代表一组路由规则,被解析成Rule对象 
使用示例
//启动url 默认的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");
//最复杂的使用
VpRouter.get()
    .context(this)
    .setInterceptor(new IRouterInterceptor() {
      @Override
      public boolean cancel() {
        return false;//return true 会把本次跳转拦截掉
      }
      @Override
      public Bundle addExtras() {
        return null;//返回Bundle 会添加到Intent中
      }
    })
    .setResultCallback(new IRouterResultCallback() {
      @Override
      public void onSuccess() {
        //跳转成功的回调
      }
      @Override
      public void onFail(RouterError error) {
        //跳转失败的回调
        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>;感谢你能够认真阅读完这篇文章,希望小编分享的“Android组件化开发路由的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!
本文名称:Android组件化开发路由的示例分析
当前地址:http://www.scyingshan.cn/article/gicige.html

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 