sendMessage method
void
sendMessage(
- NIMMessage message, {
- NIMMessage? replyMsg,
- bool resend = false,
})
Implementation
void sendMessage(NIMMessage message,
{NIMMessage? replyMsg, bool resend = false}) async {
message.messageAck = await ConfigRepo.getShowReadStatus();
//回调
if (ChatKitClient.instance.messageAction != null) {
ChatKitClient.instance.messageAction!(message);
}
message.config = NIMCustomMessageConfig(enablePush: true);
if (message.pushPayload == null &&
ChatKitClient.instance.chatUIConfig.getPushPayload != null) {
message.pushPayload =
ChatKitClient.instance.chatUIConfig.getPushPayload!.call(message);
}
var chatMessage = ChatMessage(message, replyMsg: replyMsg);
if (resend == false) {
//发送消息插入到列表最前面
_messageList.insert(0, chatMessage);
notifyListeners();
} else {
_onMessageSending(chatMessage);
}
if (replyMsg != null) {
var msgInfo = ReplyMessageInfo(
idClient: replyMsg.uuid!,
scene: replyMsg.sessionType?.name,
to: replyMsg.sessionId,
from: getIt<LoginService>().userInfo?.userId,
idServer: replyMsg.serverId?.toString(),
time: replyMsg.timestamp);
if (message.remoteExtension != null) {
message.remoteExtension![ChatMessage.keyReplyMsgKey] = msgInfo.toMap();
} else {
message.remoteExtension = {ChatMessage.keyReplyMsgKey: msgInfo.toMap()};
}
}
ChatMessageRepo.sendMessage(message: message, resend: resend).then((value) {
_onMessageSend(value, chatMessage);
});
}