Arouter跨module调用组件

场景

A module使用B module下的一个弹框组件,A和B均依赖arouter
A关注自己想要的,定义一个接口,让B去具体实现

arouter组件下定义服务接口

//名称:订单弹窗服务
public interface OrderPopService extends IProvider {
/**
 * 数据组装: list key jsonList, value json数组
 * 埋点上报 
 * key: click_name, value: 名称
 * key: exposure_name, value: 名称
 */
  void showDialog(Context mContext, HashMap<String, String> json);
}

在B module下实现具体弹框逻辑

/**
 * 名称: 服务具体功能实现类
 */
@Route(path = “pop_service”, name = "xxx")
public class CouponPopServiceImpl implements OrderPopService {

@Override
public void showDialog(Context mContext, HashMap<String, String> json) {
  //TODO  在这里写你的弹框逻辑......
   
   }
}

@Override
public void init(Context context) {
}
}

A调用B的服务

val popService = ARouter.getInstance().navigation(OrderPopService::class.java)
val mapList=HashMap<String,String>()
mapList["jsonList"]= JSON.toJSONString("你的data”)
popService.showDialog(context,mapList)

End Thanks

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

推荐阅读更多精彩内容