使用Request与Response
Request
Request 对象保存了路由请求的所有信息,您可以通过对象的公有方法获取到这些信息。
// 路由绑定的Context,如果路由从Fragment启动时则为Fragment关联的Context
public Context context();
// 路由绑定的Fragment,仅当路由从Fragment启动时返回结果
public Fragment fragment();
// 路由创建时的时间戳
public long startRequestMoment();
// 启动Activity时传入的activityOptions
public ActivityOptionsCompat activityOptionsCompat();
// 路由启动Activity时是否指定以startActivityForResult的方式启动
public boolean startActivityForResult();
// 启动startActivityForResult时传入的requestCode
public int requestCode();
// 启动Activity时设置的进入动画
public int activityEnterAnim();
// 启动Activity时设置的退出动画
public int activityExitAnim();
// 启动Activity时是否设置了callback的方式接收startActivityForResult的结果
public boolean startActivityWithCallback();
// 用于接收startActivityForResult结果的callback
public ActivityResultCallback activityResultCallback();
// 获取Fragment时用于接收Fragment实例的callback
public NewInstanceCallback newInstanceCallback();
// 启动Activity时设置的activityFlags
public int activityFlags();
// 是否为异步执行
public boolean isAsync();
// 路由的url
public PortalUrl url();
// 路由设置的参数
public Bundle params();
// 设置路由请求最终的目的地
public void setDestination(Destination destination);
// 获取路由请求解析后的目的地
public Destination destination();
// 路由请求设置的拦截器列表
public List<Interceptor> interceptors();
如果需要构建一个请求,可以通过 Request.create()
来设置这些字段并创建请求。
Request.create(context).build();
Response
Response用于表示一次路由执行的结果,Response包含了 launch 返回的数据以及错误信息。
// Response包含的错误信息
public String message();
// Response包含的返回结果
public Bundle data();
// Response的状态码
public int status();
状态码指示了请求是否被正确处理
// 路由成功
public static final int STATUS_SUCCESS = 200;
// 路由重定向
public static final int STATUS_REDIRECT = 301;
// 未找到路由目标
public static final int STATUS_PAGE_NOT_FOUND = 404;
// 没有能够处理路由目标的Launcher
public static final int STATUS_LAUNCHER_NOT_FOUND = 401;
// 路由过程被拦截器终止
public static final int STATUS_INTERCEPT = 402;
// 路由请求不正确
public static final int STATUS_REQUEST_ERROR = 400;
// 路由内部逻辑错误
public static final int STATUS_INTERNAL_ERROR = 500;
同Request一样,Response也可以通过 Response.create()
来进行创建。
Response.create(Response.STATUS_SUCCESS).build();