buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.x ↑'
classpath 'com.chenenyu.router:gradle-plugin:latest.integration'
}
}
// Optional. Specify the dependencies version, default to the latest version.
ext {
...
routerVersion = "x.y.z"
compilerVersion = "x.y.z"
}
apply plugin: 'com.android.application/library' apply plugin: 'com.chenenyu.router'
public class App extends MultiDexApplication {
@Override
public void onCreate() {
super.onCreate();
// 初始化
Router.initialize(this);
// 开启log
if (BuildConfig.DEBUG) {
Router.openLog();
}
}
}
// 单路径注解
@Route("test")
public class TestActivity extends Activity {
...
}
// 多路径注解,这几个注解都能打开该Activity
@Route({"user", "example://user", "http://example.com/user"})
public class UserActivity extends Activity {
...
}
// 最简单的路由跳转,打开TestActivity
Router.build("test").go(context);
// 其他部分api
Router.build("user")
.requestCode(int) // 调用startActivityForResult
.extras(bundle) // 携带跳转参数
.addFlags(flag) // 添加标记,比如intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
.anim(enter, exit) // 添加跳转动画
.callback(calback) // 跳转结果回调
.go(context);
// 动态添加路由
Router.addRouteTable(new RouteTable() {
@Override
public void handleActivityTable(Map<String, Class<? extends Activity>> map) {
map.put("dynamic", DynamicActivity.class);
}
});
Router.addRouteInterceptor(new RouteInterceptor() {
@Override
public boolean intercept(Context context, @NonNull Uri uri, @Nullable Bundle extras) {
// operation.
return false;
}
});
// 返回true表示当前路由被该Matcher匹配,返回false则会继续匹配其他Matcher public abstract boolean match(Context context, Uri uri, @Nullable String route, RouteOptions routeOptions); // match方法返回true后会调用该方法,用来生成一个Intent对象 public abstract Intent onMatched(Context context, Uri uri, @Nullable Class<? extends Activity> target);
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有