sendTextMessage method
void
sendTextMessage(})
Implementation
void sendTextMessage(
String text, {
NIMMessage? replyMsg,
List<String>? pushList,
AitContactsModel? aitContactsModel,
String? title,
}) async {
var aitMap;
if (aitContactsModel?.aitBlocks.isNotEmpty == true) {
aitMap = aitContactsModel?.toMap();
}
var customData = ChatMessageHelper.getMultiLineMessageMap(
title: title,
content: text,
);
var customJson = customData == null ? '' : jsonEncode(customData);
var pushConfig = null;
var msgBuildResult = (title?.isNotEmpty == true)
? (await MessageCreator.createCustomMessage(title!, customJson))
: (await MessageCreator.createTextMessage(text));
if (msgBuildResult.isSuccess && msgBuildResult.data != null) {
if (conversationType == NIMConversationType.team && pushList != null) {
pushConfig = NIMMessagePushConfig(
pushContent: title ?? text,
forcePush: true,
forcePushContent: title ?? text,
forcePushAccountIds: pushList,
);
} else {
//兼容单聊@ 数字人的case,此处forcePush 不生效,只用于获取数字人agent
pushConfig = NIMMessagePushConfig(
pushContent: title ?? text,
forcePushAccountIds: pushList,
);
}
if (aitMap != null) {
msgBuildResult.data!.serverExtension = jsonEncode({
ChatMessage.keyAitMsg: aitMap,
});
}
sendMessage(
msgBuildResult.data!,
replyMsg: replyMsg,
pushConfig: pushConfig,
);
}
}