onMessageRevokedNotify method
Future<NIMResult<NIMMessage> >
onMessageRevokedNotify(
- NIMMessageRevokeNotification revokedMsg,
- String revokedMsgContent
Implementation
Future<NIMResult<NIMMessage>> onMessageRevokedNotify(
NIMMessageRevokeNotification revokedMsg, String revokedMsgContent) async {
//创建一条特殊的占位消息
final msgResult = await MessageCreator.createTextMessage(revokedMsgContent);
if (msgResult.isSuccess && msgResult.data != null) {
var locationExtension = null;
//设置撤回标识
if (msgResult.data!.localExtension?.isNotEmpty == true) {
locationExtension = jsonDecode(msgResult.data!.localExtension!);
locationExtension![ChatMessage.keyRevokeMsg] = true;
} else {
locationExtension = {ChatMessage.keyRevokeMsg: true};
}
msgResult.data!.localExtension = jsonEncode(locationExtension!);
msgResult.data!.messageConfig = NIMMessageConfig(unreadEnabled: false);
msgResult.data!.isSelf =
revokedMsg.messageRefer?.senderId == IMKitClient.account()
? true
: false;
//将占位消息插入到本地
return NimCore.instance.messageService.insertMessageToLocal(
message: msgResult.data!,
conversationId: revokedMsg.messageRefer!.conversationId!,
senderId: revokedMsg.messageRefer?.senderId,
createTime: revokedMsg.messageRefer?.createTime);
}
return NIMResult.failure(message: 'build message error');
}