Skip to content

最近会话管理

获取最近会话

所有最近会话

dart
// 查询所有最近会话
WKIM.shared.conversationManager.getAll();

新消息

只有第一次打开应用时,需要同步最近会话列表, 后续最近会话列表的变化,通过监听来获取

dart
// 监听刷新消息
 WKIM.getInstance().getConversationManager().addOnRefreshMsgListener("key", new IRefreshConversationMsg() {
            @Override
            public void onRefreshConversationMsg(WKUIConversationMsg wkUIConversationMsg, boolean isEnd) {
                // wkUIConversationMsg 最近会话消息内容 UI上已有该会话需进行更新,反之添加到UI上
                // isEnd 为了防止频繁刷新UI,当isEnd为true可刷新UI
            }
        });
// 移除监听
 WKIM.getInstance().getConversationManager().removeOnRefreshMsg("key");

删除最近会话

dart
// 删除最近会话
WKIM.shared.conversationManager.deleteMsg(channelId,channelType);

常用方法

dart
// 设置红点
WKIM.shared.conversationManager.updateRedDot(channelId,channelType,count);

// 删除所有最近会话
WKIM.shared.conversationManager.clearAll();

数据结构说明

dart

class WKConversationMsg {
  //频道id
  String channelID = '';
  //频道类型
  int channelType = WKChannelType.personal;
  //最后一条消息本地ID
  String lastClientMsgNO = '';
  //是否删除
  int isDeleted = 0;
  //服务器同步版本号
  int version = 0;
  //最后一条消息时间
  int lastMsgTimestamp = 0;
  //未读消息数量
  int unreadCount = 0;
  //最后一条消息序号
  int lastMsgSeq = 0;
  //扩展字段
  dynamic localExtraMap;
  WKConversationMsgExtra? msgExtra;
  String parentChannelID = '';
  int parentChannelType = 0;
}

本文档内容版权属于 上海信必达网络科技有限公司,保留所有权利