Skip to content

使用不同方式启动路由

Haoge edited this page May 8, 2017 · 3 revisions

自2.x版本开始。路由事件由原有的只支持跳转Activity(页面路由), 添加新功能支持执行路由启动任意操作(动作路由),如更新数据库等,启动后台任务等。

1.最基本用法。查找到对应url所匹配的页面并直接跳转。若url的schema为http/https。且本地页面所设置的路由规则并没有能匹配此url的。则跳转到浏览器。

Router.create(url).open(context);

2.只添加额外数据与拦截器。不管是否是页面路由(跳转Activity)还是动作路由(不跳转Activity,执行特定动作)

Router.create(url)
    .setCallback(callback)// 设置单次回调监听器,若不设置。则使用全局的监听器。
    .getBaseRoute()
    .addInterceptor(interceptor)// 添加拦截器
    .addExtras(bundle) // 添加额外bundle数据
    .open(context) 
  1. 只触发页面路由事件。且设置额外数据
Router.create(url).getActivityRoute()
    .addInterceptor(interceptor)// 添加拦截器
    .addExtras(bundle) // 添加额外bundle数据
    .requestCode(code) // 设置请求码
    .addAnim(inAnim,outAnim) // 设置转场动画
    .addFlags(flag) // 设置intent flags
    .open(context) 
  1. 只触发动作路由事件。
Router.create(url).getActionRoute()
    .addInterceptor(interceptor)// 添加拦截器
    .addExtras(bundle) // 添加额外bundle数据
    .open(context)