Skip to content
chenenyu edited this page Aug 3, 2018 · 14 revisions

路由相关的API可以参考IRouter.

Router.build(uri)是路由的入口,一切跳转皆是从此开始:

method info return
build(Uri uri) 发起路由操作的起点,内部构建了一个RouteRequest IRouter
callback(RouteCallback callback) 设置路由结果回调 IRouter
requestCode(int requestCode) 添加了requestCode即表示要调用startActivityForResult,requestCode >= 0 IRouter
with(Bundle bundle) 携带Bundle IRouter
with(PersistableBundle bundle) @RequiresApi(21) 携带PersistableBundle IRouter
with(String key, Object value) 携带extras IRouter
addFlags(int flags) Intent#addFlags(int) IRouter
setData(Uri data) Intent#setData(Uri) IRouter
setType(String type) Intent#setType(String) IRouter
setDataAndType(Uri data, String type) Intent#setDataAndType(Uri, String) IRouter
setAction(String action) Intent#setAction(String) IRouter
anim(@AnimRes int enterAnim, @AnimRes int exitAnim) Activity#overridePendingTransition(int, int) IRouter
activityOptions(ActivityOptionsCompat activityOptions) ActivityOptions 添加转场动画 IRouter
skipInterceptors() 跳过所有拦截器 IRouter
skipInterceptors(String... interceptors) 跳过指定的拦截器 IRouter
addInterceptors(String... interceptors) 为当前的路由请求添加临时的拦截器 IRouter
getIntent(Context context) 获取路由对应的Intent Intent
getFragment(Context context) 获取路由对应的Fragment Object(android.app.Fragment or android.support.v4.app.Fragment)
go(Context context, RouteCallback callback) 设置路由回调并跳转 void
go(Context context) 跳转 void
go(android.support.v4.app.Fragment fragment, RouteCallback callback) 设置路由回调并跳转。传入的参数是fragment对象,方便在fragment中接收startActivityForResult的回调 void
go(android.support.v4.app.Fragment fragment) 跳转。传入的参数是fragment对象,方便在fragment中接收startActivityForResult的回调 void
go(android.app.Fragment fragment, RouteCallback callback) 设置路由回调并跳转。传入的参数是fragment对象,方便在fragment中接收startActivityForResult的回调 void
go(android.app.Fragment fragment) 跳转。传入的参数是fragment对象,方便在fragment中接收startActivityForResult的回调 void
... ... ...

最后调用Router.build(uri).go(context/fragment)即可完成路由动作。注意,如果是在Activity中调用,最好传入当前的Activity,如果是在Fragment中调用,就传入当前的fragment。

Router相关的API如下:

method info
handleRouteTable(RouteTable routeTable) 手动分配路由
injectParams(Object obj) 自动注入参数。obj必须是activity或者fragment对象
addGlobalInterceptor(RouteInterceptor routeInterceptor) 添加全局拦截器
registerMatcher(AbsMatcher matcher) 注册自定义匹配器。属于进阶用法,参考wiki。
... ...
Clone this wiki locally