TheRouter路由框架通过path获取页面的name或者class

由于阿里路由ARouter早已不维护更新,不得已迁移到新的路由框架TheRouter(货拉拉),由于我的需求,需要通过路径获取对应的activity的类名或者class,以前用arouter的时候,我是这样实现,可以看我这篇文章https://www.jianshu.com/p/9baebeaea080 现在换到TheRouter之后,需要重新实现。
在查看源码时发现,内部获取跳转信息的方法matchRouteMap,竟然可以直接调用此方法拿到路由表对应的信息,那这样就比较简单了,以下是代码

//kotlin实现
fun getRouRouteItem(path:String): RouteItem?{
        return matchRouteMap(path)
    }
fun getClassNameByPath(path:String):String?{
        return getRouRouteItem(path)?.className
    }

上面的方法可以拿到RouteItem,里面有对应activity的className,因此我们可以通过className再拿到class

//java实现
public static Class<Activity> getActivityClassByPath(String path) {
        String name = TheRouterUtil.INSTANCE.getClassNameByPath(path);
        if (!TextUtils.isEmpty(name)) {
            try {
                Class activityClass = Class.forName(name);
                return activityClass;
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
        }
        return null;
    }

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容