自定义路由
如果需要动态加载自定义的路由,首先应当创建一个路由的 Destination:
Destination destination = Destination.create()
.url(PortalConst.DYNAMIC_ACTIVITY)
.launcher(Launcher.ACTIVITY)
.realPath(DynamicRouteActivity.class.getCanonicalName())
.targetClass(DynamicRouteActivity.class).build();
其中的参数可以参考 @Destination
注解,除此之外还增加了 realPath 参数以及 targetClass 参数:
realPath
String类型,通常为路由目标的类全名targetClass
Class类型,通常为路由目标的类
您也可以通过 Destination.from()
方法从 JSONObject 或是 JSON 字符串中读取 Destination 信息,JSON字段的定义同上面的参数一致。
定义好一系列 Destination 后,将这些 Destination 加入到 Mapping 对象中:
Mapping dynamicMapping = new DefaultMapping();
dynamicMapping.registerDestination(destination1);
dynamicMapping.registerDestination(destination2);
...
最后在路由SDK中注册 Mapping 对象:
Portal.registerMapping(dynamicMapping);
之后您将可以访问 Mapping 中包含的 Destination。反之如果需要移除动态注册的路由:
Portal.unregisterMapping(dynamicMapping);
之后这些路由将不再能够访问到。