自定义路由

如果需要动态加载自定义的路由,首先应当创建一个路由的 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);

之后这些路由将不再能够访问到。

注意:路由的Url应当保证唯一性,以免访问时导向错误的位置。

Copyright © 2013-2023 Tencent Cloud. all right reserved,powered by GitbookUpdate Time 2023-08-31 14:46:07

results matching ""

    No results matching ""