设置与使用会话标签
- SDK 从 5.1.1 版本开始支持会话标签功能,相关接口仅在
RCCoreClient类中提供。- SDK 从 5.3.0 版本开始,建议使用异步返回结果的接口,原同步接口同时废弃。
- 在为会话设置标签前,请确保已创建标签信息。详见管理标签信息数据。
- 本功能不适用于聊天室、超级群。
每个用户最多可以创建 20 个标签,每个标签下最多可以添加 1000 个会话。如果标签下已添加 1000 个会话,继续在该标签下添加会话仍会成功,但会导致最早添加标签的会话被移除标签。
场景描述
会话标签常实现 App 用户对会话进行分组的需求。创建标签信息(RCTagInfo)后,App 用户可以为会话设置一个或多个标签。
设置标签后,可以利用会话的标签数据实现会话的分组获取、展示、删除等特性。还可以获取指定标签下所有会话的消息未读数,或在特定标签下设置某个会话置顶。
- 场景 1:对会话列表中的每个会话打 tag,类似企业微信会话列表中的外部群,部门群,个人群等 tag。
- 场景 2:通讯录根据 tag 来分组,类似 QQ 好友列表中的家人,朋友,同事分组等。
- 场景 3:前两个场景的结合,按照 tag 来进行会话列表分组,类似 Telegram 的会话列表分组。
使用标签标记会话
在创建标签信息(RCTagInfo)后,App 用户可以使用标签标记会话。SDK 将用标签标记会话的操作视为将会话添加到标签中。
支持以下操作:
- 标记会话,即将一个或多个会话添加到指定标签
- 从标签中移除一个或多个会话
- 为指定会话移除一个或多个标签
将一个或多个会话添加到指定标签
IMlib SDK 将用标签标记会话的操作视为将会话添加到标签中。您可以将多个会话添加到一个标签。指定标签时只需要传入 RCTagInfo 中的 tagId。
方法原型
Objective C
- (void)addConversationsToTag:(NSString *)tagId
conversationIdentifiers:(NSArray<RCConversationIdentifier *> *)conversationIdentifiers
success:(nullable void (^)(void))successBlock
error:(nullable void (^)(RCErrorCode errorCode))errorBlock;
参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
tagId | NSString | 标签 ID。 |
conversationIdentifiers | NSArray | 会话列表,数组元素是 RCConversationIdentifier。 |
successBlock | Block | 成功回调。 |
errorBlock | Block | 失败回调。errorCode 参数返回 RCErrorCode。 |
示例代码
Objective C
RCConversationIdentifier *iden = [[RCConversationIdentifier alloc] initWithConversationIdentifier:ConversationType_PRIVATE targetId:@"targetId"];
[[RCCoreClient sharedCoreClient] addConversationsToTag:@"tagId" conversationIdentifiers:@[iden] success:^{
} error:^(RCErrorCode errorCode) {
}];
从指定标签下移除会话
您可能需要在携带指定标签的会话中移除一个或多个会话。例如,在所有添加了培训班标签的会话中移除与Tom的私聊会话。IMLib SDK 将该操作视为从指定标签中移除会话。移除成功后,会话仍然存在,但不再携带该标签。
接口原型
Objective C
- (void)removeConversationsFromTag:(NSString *)tagId
conversationIdentifiers:(NSArray<RCConversationIdentifier *> *)conversationIdentifiers
success:(nullable void (^)(void))successBlock
error:(nullable void (^)(RCErrorCode errorCode))errorBlock;
参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
tagId | NSString | 标签 id |
conversationIdentifiers | NSArray | 会话列表,数组元素是 RCConversationIdentifier。 |
successBlock | Block | 成功回调。 |
errorBlock | Block | 失败回调。errorCode 参数返回 RCErrorCode。 |
示例代码
Objective C
RCConversationIdentifier *iden = [[RCConversationIdentifier alloc] initWithConversationIdentifier:ConversationType_PRIVATE targetId:@"targetId"];
[[RCCoreClient sharedCoreClient] removeConversationsFromTag:@"tagId" conversationIdentifiers:@[iden] success:^{
} error:^(RCErrorCode errorCode) {
}];