sendMessage static method

Future<V2TimValueCallback<V2TimMessage>?> sendMessage({
  1. V2TimMessage? message,
  2. required String groupId,
  3. required String receiver,
  4. String? cloudCustomData,
  5. String? messageId,
})

Implementation

static Future<V2TimValueCallback<V2TimMessage>?> sendMessage({
  V2TimMessage? message,
  required String groupId,
  required String receiver,
  String? cloudCustomData,
  String? messageId,
}) async {
  if (message != null) {
    final res = await TencentImSDKPlugin.v2TIMManager.getMessageManager().sendMessage(
      receiver: receiver,
      groupID: groupId,
      cloudCustomData: cloudCustomData,
      message: message,
    );
    if (res.code == 0 && res.data != null)  {
      TCICController.instance.getEventBus().fire(
        MainEvent(type: EventTypeEnum.imSendMessageSuccess, data: res.data),
      );
    } else {
      TCICLog.error(
        "Failed to send message: code=${res.code}, message=${res.desc}",
        actionModule: ActionModule.imSDK.name,
        actionName: ActionName.sendMessage.name,
      );
    }
    return res;
  }
  if (messageId != null) {
    final res = await TencentImSDKPlugin.v2TIMManager.getMessageManager().sendMessage(
      receiver: receiver,
      groupID: groupId,
      cloudCustomData: cloudCustomData,
      id: messageId,
    );
    if (res.code == 0 && res.data != null)  {
      TCICController.instance.getEventBus().fire(
        MainEvent(type: EventTypeEnum.imSendMessageSuccess, data: res.data),
      );
    } else {
      TCICLog.error(
        "Failed to send message: code=${res.code}, message=${res.desc}",
        actionModule: ActionModule.imSDK.name,
        actionName: ActionName.sendMessage.name,
      );
    }
    return res;
  }

  TCICLog.error(
    "Failed to send message: message=${message?.toJson()}, messageId=$messageId",
    actionModule: ActionModule.imSDK.name,
    actionName: ActionName.sendMessage.name,
  );
  return null;
}