onMessageRevokedNotify method

Future<NIMResult<NIMMessage>> onMessageRevokedNotify(
  1. NIMMessageRevokeNotification revokedMsg,
  2. 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');
}