Build Status license PullRequest
中文wiki. 方便的话给个star!❤️
- Add router gradle plugin to your project-level
build.gradle, as shown below.
buildscript {
repositories {
google()
mavenCentral()
// jcenter() // deprecated
}
dependencies {
classpath 'com.android.tools.build:gradle:+'
classpath "com.chenenyu.router:gradle-plugin:x.y.z"
}
}latest router-gradle-plugin version: maven
- Apply router plugin in your module-level 'build.gradle'.
apply plugin: 'com.android.application' // apply plugin: 'com.android.library' apply plugin: 'com.chenenyu.router'
注意: 在rootProject的build.gradle文件中, 可以指定插件引用的library版本.
ext {
routerVersion = 'x.y.z'
compilerVersion = 'x.y.z'
compilerLoggable = true/false // 打开/关闭编译期log
}latest router version: maven
latest compiler version: maven
- 添加拦截器(可选)
@Interceptor("SampleInterceptor") public class SampleInterceptor implements RouteInterceptor { @Override public RouteResponse intercept(Chain chain) { // do something return chain.process(); } }
- 添加注解
// 给Activity添加注解,指定了路径和拦截器(可选) @Route(value = "test", interceptors = "SampleInterceptor") public class TestActivity extends AppCompatActivity { @InjectParam(key="foo") // 参数映射 String foo; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Router.injectParams(this); // 自动从bundle中获取并注入参数 ... } } // 给Fragment添加注解 @Route("test") public class TestFragment extends Fragment { ... }
- 跳转
// 简单跳转 Router.build("test").go(this); // startActivityForResult Router.build("test").requestCode(0).go(this); // 携带bundle参数 Router.build("test").with("key", Object).go(this); // 添加回调 Router.build("test").go(this, new RouteCallback() { @Override public void callback(RouteStatus status, Uri uri, String message) { // do something } }); // 获取路由对应的intent Router.build("test").getIntent(); // 获取注解的Fragment Router.build("test").getFragment();
建议浏览 wiki.
QQ group: 271849001