跳到主要内容

管理标签信息数据

SDK 从 5.1.1 版本开始支持创建标签。

本文描述如何 App 如何使用 RCCoreClient 下的接口创建和管理标签信息数据。客户端 SDK 支持用户创建标签信息(RCTagInfo),用于对会话进行标记分组。每个用户最多可以创建 20 个标签。App 用户创建的标签信息数据会同步融云服务端。

标签信息(RCTagInfo)的定义如下:

参数类型说明
tagIdNSString标签唯一标识,字符型,长度不超过 10 个字。
tagNameNSString长度不超过 15 个字,标签名称可以重复。
countNSInteger标签下会话个数
timestamplong long时间戳由 SDK 内部协议栈提供。
提示

本文仅描述如何管理标签信息数据。关于如何为会话设置标签、以及如何按标签获取会话数据,请参见设置与使用会话标签

创建标签信息

创建标签,每个用户最多可以创建 20 个标签。

RCTagInfo *tag = [[RCTagInfo alloc] initWithTagInfo:@"tagId" tagName:@"tagName"];

[[RCCoreClient sharedCoreClient] addTag:tag success:^{

} error:^(RCErrorCode errorCode) {

}];

移除标签信息

移除标签。移除标签信息时只需要传入 RCTagInfo 中的 tagId

[[RCCoreClient sharedCoreClient] removeTag:@"tagId" success:^{

} error:^(RCErrorCode errorCode) {

}];

编辑标签信息

更新标签信息。仅支持修改 RCTagInfo 中的标签名称(tagName)字段。长度不超过 15 个字,标签名称可以重复。

RCTagInfo *tag = [[RCTagInfo alloc] initWithTagInfo:@"tagId" tagName:@"tagName"];

[[RCCoreClient sharedCoreClient] updateTag:tag success:^{

} error:^(RCErrorCode errorCode) {

}];

获取标签信息列表

提示

从 5.3.0 版本 RCCoreClient 开始,建议使用下方异步返回结果的接口,原同步接口同时废弃。

获取当前用户已创建的标签信息。成功回调中会返回 RCTagInfo 的列表。

[[RCCoreClient sharedCoreClient] getTags:^(NSArray<RCTagInfo *> * _Nonnull tags) {
NSArray *array = tags;
}];
参数类型说明
completionBlock异步回调,返回标签信息(RCTagInfo)的列表。

多端同步标签信息修改

即时通讯支持同一用户账号在多端登录。如果您的 App 用户在当前设备上修改了标签信息,SDK 会负责通知该用户的其他设备。其他设备收到通知后,需要调用 getTags 从融云服务端获取最新标签信息。

设置代理委托后可在当前设备上接收到来自其他设备的标签信息修改通知。

提示
  • 请在初始化之后,连接之前调用该方法。
  • 在当前设备上修改标签信息不会触发该回调方法。服务端仅会通知 SDK 在同一用户账号登录的其他设备上触发回调。

设置代理委托

[RCCoreClient sharedCoreClient].tagDelegate = self;

代理方法

@protocol RCTagDelegate <NSObject>

/*!
标签变化

@discussion 本端添加删除更新标签,不会触发不会触发此回调方法,在相关调用方法的 block 块直接回调
*/
- (void)onTagChanged;

@end

当用户在其它端添加、移除、编辑标签时,SDK 会触发 onTagChanged 回调。请在收到通知后调用 getTags 从融云服务端获取最新标签信息。