使用ARouter实现登录拦截功能

添加登录的拦截器

@Interceptor(priority =1)

public class LoginInterceptorImplimplements IInterceptor {

@Override

    public void process(Postcard postcard, InterceptorCallback callback) {

String path = postcard.getPath();

//登录或者跳到登录界面不需要拦截(不需要登录的界面可以列出来)

if (isLogin || path.equals("/mylibrary/login")) {

callback.onContinue(postcard);

}else {

//没有登录拦截到登录界面,将要跳转的路径和参数传递给登录界面

            Bundle bundle = postcard.getExtras();

ARouter.getInstance().build("/mylibrary/login")

.with(bundle)

.withString("path", path)

.navigation();

}

}

@Override

    public void init(Context context) {

Log.i("AROUNT","初始化调用一次");

}

}

登录后修改标志改为登录,并取出要跳转的地址和参数进行路由跳转

isLogin=true;

Intent intent = getIntent();

String path = intent.getStringExtra("path");

ARouter.getInstance().build(path).with(intent.getExtras()).navigation();

你可能感兴趣的:(使用ARouter实现登录拦截功能)