设置会话扩展信息
2026-11-06
功能简介
会话扩展信息(extendedData)是由业务侧自定义并维护的 JSON 字符串,可附着在会话上,用于存储会话的自定义业务数据。
自 3.3.0 版本起,ZIM 支持为会话设置扩展信息。设置后,在查询会话列表或收到会话变更通知时,扩展信息会通过 ZIMConversation 的 extendedData 字段返回。
说明
会话扩展信息与会话标记相互独立:设置或取消会话标记不会清除会话扩展信息。
实现流程
调用 setConversationExtendedData 接口,传入 ZIMConversationExtendedData 列表(包含会话 ID、会话类型及扩展信息),即可批量设置多个会话的扩展信息。extendedData 传空字符串,可删除对应会话的扩展信息。
注意事项:
- 仅支持单聊和群聊会话,其他会话类型(如房间)会在本地设置失败。
- 即使回调中
errorInfo.code为成功,也仍应检查failedConversationInfos,在本地被拒绝的条目会通过该列表返回。
// 构造会话扩展信息列表
ZIMConversationExtendedData *data = [[ZIMConversationExtendedData alloc] init];
data.conversationID = @"convId";
data.conversationType = ZIMConversationTypePeer;
data.extendedData = @"{\"key\":\"value\"}";
// 设置会话扩展信息
[[ZIM getInstance] setConversationExtendedData:@[data] callback:^(NSArray<ZIMConversationBaseInfo *> * _Nonnull failedConversationInfos, ZIMError * _Nonnull errorInfo) {
// 设置会话扩展信息的结果回调
if (errorInfo.code == ZIMErrorCodeSuccess) {
// 设置成功,注意检查 failedConversationInfos 中设置失败的会话
} else {
// 可以打印错误码和错误信息,参考 ZIM 官网错误码文档排查错误原因
}
}];