Package-level declarations

Types

Link copied to clipboard
Annotation for parameters, which need autowired.
Link copied to clipboard
class AutowiredItem(type: String, key: String, id: Int, args: String, className: String, fieldName: String, required: Boolean, description: String)
Link copied to clipboard
interface IRouterMapAPT

Created by ZhangTao on 17/8/1.

Link copied to clipboard
open class Navigator(var url: String?, val intent: Intent?)

路由导航器。与RouterItem作用类似,允许互转。 RouterItem 用于描述一个静态的路由项 Navigator 用于描述一个路由项的跳转动作

Link copied to clipboard
Link copied to clipboard
class PendingNavigator(val navigator: Navigator, val action: () -> Unit)

可以被挂起的导航器,通常用于延迟动作。 延迟跳转主要应用场景有两种: 第一种:初始化时期,如果路由表的量非常巨大时。这种情况在别的路由框架上要么会白屏一段时间,要么直接丢弃这次跳转。在TheRouter中,框架会暂存当前的跳转动作,在路由表初始化完成后立刻执行跳转。 第二种:从Android 8.0开始,Activity 不能在后台启动页面,这对于业务判断造成了很大的影响。由于可能会有前台 Service 的情况,不能单纯以 Activity 生命周期判断前后台。在TheRouter中,框架允许业务自定义前后台规则,如果为后台情况,可以将跳转动作暂存,当进入前台后再恢复跳转。

Link copied to clipboard

专门为路由服务,因为路由的path存在正则的情况

Link copied to clipboard
https://youtrack.jetbrains.com/issue/KT-12794 Kotlin 的 @Repeatable 不能注解到 Java class,得要到1.6才能支持,但是 Java 的却能注解到 Kotlin 代码,所以这个类只能写 Java 的 Created by ZhangTao on 17/8/11.
Link copied to clipboard

独立的一条路由记录

Link copied to clipboard
Link copied to clipboard
annotation class Routes
Created by ZhangTao on 17/8/11.

Properties

Link copied to clipboard
val gson: Gson
Link copied to clipboard
const val KEY_ACTION: String
Link copied to clipboard
const val KEY_ANIM_IN: String
Link copied to clipboard
const val KEY_ANIM_OUT: String
Link copied to clipboard
const val KEY_BUNDLE: String
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
const val KEY_PATH: String

Functions

Link copied to clipboard

应用场景:用于修复客户端上路由 path 错误问题。 例如:相对路径转绝对路径,或由于服务端下发的链接无法固定https或http,但客户端代码写死了 https 的 path,就可以用这种方式统一。 注:必须在 TheRouter.build() 方法调用前添加处理器,否则处理器前的所有path不会被修改。

Link copied to clipboard

页面替换器 应用场景:需要将某些path指定为新链接的时候使用。 也可以用在修复链接的场景,但是与 path 修改器不同的是,修改器通常是为了解决通用性的问题,替换器只在页面跳转时才会生效,更多是用来解决特性问题。

Link copied to clipboard
fun addRouteItem(routeItem: RouteItem)

向路由表添加路由

Link copied to clipboard
fun addRouteMap(routeItemArray: Collection<RouteItem>?)

向路由表添加路由

Link copied to clipboard

路由替换器 应用场景:常用在未登录不能使用的页面上。例如访问用户钱包页面,在钱包页声明的时候,可以在路由表上声明本页面是需要登录的,在路由跳转过程中,如果落地页是需要登录的,则先替换路由到登录页,同时将原落地页信息作为参数传给登录页,登录流程处理完成后可以继续执行之前的路由操作。

Link copied to clipboard
fun asyncInitRouteMap(context: Context?)

在异步初始化路由表

Link copied to clipboard

自定义全局路由跳转结果回调

Link copied to clipboard

尝试通过Intent,从路由表中获取对应的路由Path 如果路由表中没有对应路由,则将类名作为路由Path新创建一条路由项

Link copied to clipboard
fun getFileListFromAssets(context: Context?, path: String?): Array<String>?
Link copied to clipboard
fun getStreamFromAssets(context: Context?, fileName: String?): InputStream?

从assets 文件夹中获取文件并读取数据流

Link copied to clipboard
fun getStringFromAssets(context: Context, fileName: String?): String

从assets 文件夹中获取文件并读取数据

Link copied to clipboard
Link copied to clipboard

在主线程初始化路由表

Link copied to clipboard

尝试通过Path,从路由表中获取对应的路由项,如果没有对应路由,则返回null

Link copied to clipboard

尝试通过ClassName,从路由表中获取对应的路由项,如果没有对应路由,则返回空数组

Link copied to clipboard

移除Path修改器

Link copied to clipboard

可以被挂起的导航器,通常用于延迟动作。 延迟跳转主要应用场景有两种: 第一种:初始化时期,如果路由表的量非常巨大时。这种情况在别的路由框架上要么会白屏一段时间,要么直接丢弃这次跳转。在TheRouter中,框架会暂存当前的跳转动作,在路由表初始化完成后立刻执行跳转。 第二种:从Android 8.0开始,Activity 不能在后台启动页面,这对于业务判断造成了很大的影响。由于可能会有前台 Service 的情况,不能单纯以 Activity 生命周期判断前后台。在TheRouter中,框架允许业务自定义前后台规则,如果为后台情况,可以将跳转动作暂存,当进入前台后再恢复跳转。

Link copied to clipboard

当路由项被改变时,会触发回调。例如路由项被覆盖、路由项内容发生变化

Link copied to clipboard
fun setRouteMapInitTask(task: () -> Unit)

设置自定义路由表初始化逻辑,设置后会在异步线程中调用自定义初始化逻辑 默认初始化逻辑为 initRouteMap()

Link copied to clipboard
fun setRouterInterceptor(interceptor: (routeItem: RouteItem, callback: (RouteItem) -> Unit) -> Unit)

路由AOP拦截器 与前三个处理器不同的点在于,路由的AOP拦截器全局只能有一个。用于实现AOP的能力,在整个TheRouter跳转的过程中,跳转前,目标页是否找到的回调,跳转时,跳转后,都可以做一些自定义的逻辑处理。

Link copied to clipboard

将当前路由转换为导航器