android 登录组件开发,Android组件化开发路由的设计

调研了一下目前的路由框架,ARouter(阿里的),ActivityRouter都使用了apt技术 编译时注解,个人想法是一口吃不成胖子,先做个比较实用的。 VpRouter路由框架主要应用于组件化开发中

设计目的

解耦

跨模块跳转

方便服务器配置schema,实现动态配置跳转目标

对外部提供远程访问的功能,实现跨应用调用响应

主要功能点

支持intent,http,schema三种跳转

路由表支持xml配置,可自定义,支持多路径

有拦截器

同时支持反射和隐式意图

支持结果回调

支持参数传递

链式调用

支持url模式传参

支持配置多个webview 实现指定非默认的webview启动url

支持配置多个prefix

重要的类

VpRouter 单例模式 入口类

AbsRouter 路由抽象类 主要代码

RouterTable 路由表

IRouterInterceptor(拦截器) IRouterResultCallback(结果回调)

类图

1460000014910956

加载路由配置文件

//导入路由表 在application的onCreate中

VpRouter.load(getApplicationContext(),"router.xml");

路由配置文件

schema-prefix>

vf://

vipjr://

vpjr://

vpjr://h5.page

vpjr://h5.page

com.vip.hybrid.h5container.H5WebViewActivity

vpjr://h5.page.pay

com.vip.vpal.paydesk.support.h5.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://h5.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>0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值