即时通信 IM Flutter(会话分组)

在某些场景下,可以能需要对会话进行分组,例如分为 “产品体验”、”需求研发” 等,可以以调用以下接口实现。

相关产品
即时通信 IM 产品页,含版本规格、价格与购买入口。

一、功能描述

注意:说明:

二、新建会话分组

你可以调用 createConversationGroup (点击查看详情) 接口新建会话分组。

注意:说明:

注意:会话分组最大支持 20 个,超过后创建新的分组会报 51010 错误,不再使用的分组请及时删除。

属性 含义 说明
groupName 会话分组名 长度要大于 0,最大支持 32 bytes,超过后会报 51011 错误
conversationIDList 会话 ID 列表 不能为空

示例代码如下:

//创建会话分组 V2TimValueCallback<List<V2TimConversationOperationResult>> createConversationGroupRes = await TencentImSDKPlugin.v2TIMManager .getConversationManager() .createConversationGroup( groupName: "groupName",// 创建的会话分组的名称 conversationIDList: []);// 需要放入创建的会话分组的会话id列表 if (createConversationGroupRes.code == 0) { // 创建设置成功 createConversationGroupRes.data?.forEach((element) { element.conversationID; // 被添加的会话id element.resultCode; // 此条会话的操作结果错误码 element.resultInfo; // 此条会话的操作结果描述 }); }

三、删除会话分组

你可以调用 deleteConversationGroup (点击查看详情) 接口删除会话分组。

注意:说明:

注意:如果会话分组不存在,删除对应分组会报 51009 错误。

示例代码如下:

//删除会话分组 V2TimCallback deleteConversationGroupRes = await TencentImSDKPlugin .v2TIMManager .getConversationManager() .deleteConversationGroup(groupName: "groupName");//需要删除的会话分组的名称 if (deleteConversationGroupRes.code == 0) { // 删除成功 }

四、重命名会话分组

你可以调用 renameConversationGroup (点击查看详情) 接口重命名会话分组。

示例代码如下:

//重命名会话分组 V2TimCallback renameConversationGroupRes = await TencentImSDKPlugin .v2TIMManager .getConversationManager() .renameConversationGroup( oldName: "oldName",//需要重命名的会话分组的名称 newName: "newName");//回话分组的新名称 if (renameConversationGroupRes.code == 0) { // 重命名成功 }

五、获取会话分组列表

你可以调用 getConversationGroupList (点击查看详情) 接口获取会话分组列表。

示例代码如下:

//获取会话分组列表 V2TimValueCallback<List<String>> getConversationGroupListDataRes = await TencentImSDKPlugin.v2TIMManager .getConversationManager() .getConversationGroupList(); if (getConversationGroupListDataRes.code == 0) { // 查询成功 getConversationGroupListDataRes.data?.forEach((element) { element;//此条会话分组的名称 }); }

如果需要获取分组下面的会话列表,可以调用 getConversationListByFilter (点击查看详情) 接口获取。

示例代码如下:

//获取会话列表 V2TimConversationListFilter filter = V2TimConversationListFilter( conversationType: 0,//会话类型 nextSeq: 0,//拉取游标 count: 10,//拉取数量 markType: 0,//会话标记类型 groupName: "groupName");//拉取的群组名 //获取会话列表的高级接口 V2TimValueCallback<V2TimConversationResult> getConversationListByFilterRes = await TencentImSDKPlugin.v2TIMManager .getConversationManager() .getConversationListByFilter(filter: filter);//会话列表过滤器 if (getConversationListByFilterRes.code == 0) { //拉取成功 bool? isFinished =getConversationListByFilterRes.data?.isFinished; //是否拉取完 String? nextSeq =getConversationListByFilterRes.data?.nextSeq; //后续分页拉取的游标 List<V2TimConversation?>? conversationList =getConversationListByFilterRes.data?.conversationList; //此次拉取到的消息列表 //如果没有拉取完,使用返回的nextSeq继续拉取直到isFinished为true if (!isFinished!) { V2TimConversationListFilter nextFilter = V2TimConversationListFilter( conversationType: 0, nextSeq: int.parse(nextSeq!),//使用返回的nextSeq继续拉取直到isFinished为true count: 10, markType: 0, groupName: "groupName"); V2TimValueCallback<V2TimConversationResult> nextConversationListRes = await TencentImSDKPlugin.v2TIMManager .getConversationManager() .getConversationListByFilter( filter: nextFilter); } getConversationListByFilterRes.data?.conversationList?.forEach((element) { element ?.conversationID; //会话唯一 ID,如果是单聊,组成方式为 c2c_userID;如果是群聊,组成方式为 group_groupID。 element?.draftText; //草稿信息 element?.draftTimestamp; //草稿编辑时间,草稿设置的时候自动生成。 element?.faceUrl; //会话展示头像,群聊头像:群头像;单聊头像:对方头像。 element?.groupAtInfoList; //群会话 @ 信息列表,通常用于展示 “有人@我” 或 “@所有人” 这两种提醒状态。 element?.groupID; //当前群聊 ID,如果会话类型为群聊,groupID 会存储当前群的群 ID,否则为 null。 element?.groupType; //当前群聊类型,如果会话类型为群聊,groupType 为当前群类型,否则为 null。 element?.isPinned; //会话是否置顶 element?.lastMessage; //会话最后一条消息 element?.orderkey; //会话排序字段 element?.recvOpt; //消息接收选项 element ?.showName; //会话展示名称,群聊会话名称优先级:群名称 > 群 ID;单聊会话名称优先级:对方好友备注 > 对方昵称 > 对方的 userID。 element?.type; //会话类型,分为 C2C(单聊)和 Group(群聊)。 element?.unreadCount; //会话未读消息数,直播群(AVChatRoom)不支持未读计数,默认为 0。 element?.userID; //对方用户 ID,如果会话类型为单聊,userID 会存储对方的用户 ID,否则为 null。 }); }

六、添加会话到一个分组

当分组创建成功后,你可以调用 addConversationsToGroup (点击查看详情) 接口添加一个新会话到分组。

示例代码如下:

//添加会话到一个会话分组 V2TimValueCallback<List<V2TimConversationOperationResult>> addConversationsToGroupRes = await TencentImSDKPlugin.v2TIMManager .getConversationManager() .addConversationsToGroup( groupName: "groupName",//需要被添加会话的会话分组的名称 conversationIDList: []);//被添加的会话id列表 if (addConversationsToGroupRes.code == 0) { // 添加成功 addConversationsToGroupRes.data?.forEach((element) { element.conversationID; // 被添加的会话id element.resultCode; // 此条会话的操作结果错误码 element.resultInfo; // 此条会话的操作结果描述 }); }

七、从分组中删除某会话

你可以调用 deleteConversationsFromGroup (点击查看详情) 从分组中删除某会话。

示例代码如下:

//从一个会话分组中删除会话 V2TimValueCallback<List<V2TimConversationOperationResult>> deleteConversationsFromGroupRes = await TencentImSDKPlugin.v2TIMManager .getConversationManager() .deleteConversationsFromGroup( groupName: "groupName", conversationIDList: []); if (deleteConversationsFromGroupRes.code == 0) { // 删除成功 deleteConversationsFromGroupRes.data?.forEach((element) { element.conversationID; // 被删除的会话id element.resultCode; // 此条会话的操作结果错误码 element.resultInfo; // 此条会话的操作结果描述 }); }

八、监听会话分组变更通知

你可以调用 addConversationListener (点击查看详情) 接口监听会话分组变更通知。

示例代码如下:

//设置群组监听器 V2TimConversationListener listener = V2TimConversationListener( onConversationGroupCreated: (String groupName, List<V2TimConversation> conversationList) => { //会话分组被创建 //groupName 创建的会话分组名 //conversationList 创建的会话分组中的初始化会话列表 }, onConversationGroupDeleted: (String groupName) => { //会话分组被删除 //groupName 删除的会话分组名 }, onConversationGroupNameChanged: (String oldName, String newName) => { //会话分组名变更 //oldName 被修改的会话分组名 //newName 新的会话分组名 }, onConversationsAddedToGroup: (String groupName, List<V2TimConversation> conversationList) => { //会话分组新增会话 //groupName 被新增的会话的分组名 //conversationList 新增的会话列表 }, onConversationsDeletedFromGroup: (String groupName, List<V2TimConversation> conversationList) => { //会话分组删除会话 //groupName 被删除的会话的分组名 //conversationList 删除的会话列表 }, ); //添加群组监听器 TencentImSDKPlugin.v2TIMManager .getConversationManager() .addConversationListener(listener: listener);

赞 (0)
上一篇 4天前
下一篇 4天前