Skip to content

Repository files navigation

Build StatuslicensePullRequest

Router

中文wiki. 方便的话给个star!❤️

screenshot

Getting started

  • 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")
publicclassSampleInterceptorimplementsRouteInterceptor {
@OverridepublicRouteResponseintercept(Chainchain) {
// do somethingreturnchain.process();
}
}
  • 添加注解
// 给Activity添加注解,指定了路径和拦截器(可选)@Route(value = "test", interceptors = "SampleInterceptor")
publicclassTestActivityextendsAppCompatActivity {
@InjectParam(key="foo") // 参数映射Stringfoo;
@OverrideprotectedvoidonCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
Router.injectParams(this); // 自动从bundle中获取并注入参数
...
}
}
// 给Fragment添加注解@Route("test")
publicclassTestFragmentextendsFragment {
...
}
  • 跳转
// 简单跳转Router.build("test").go(this);
// startActivityForResultRouter.build("test").requestCode(0).go(this);
// 携带bundle参数Router.build("test").with("key", Object).go(this);
// 添加回调Router.build("test").go(this, newRouteCallback() {
@Overridepublicvoidcallback(RouteStatusstatus, Uriuri, Stringmessage) {
// do something
}
});
// 获取路由对应的intentRouter.build("test").getIntent();
// 获取注解的FragmentRouter.build("test").getFragment();

进阶用法

建议浏览 wiki.

讨论

QQ group: 271849001

Donate ❤️

Click here.

License

Apache 2.0

About

🍭灵活的组件化路由框架.

Topics

Resources

Stars

1.6k stars

Watchers

43 watching

Forks

Releases

Packages

Used by

Contributors

Languages