SDKsiOS商业版
会话分组概览
了解 OpenIM iOS SDK 会话分组的数据边界和 listener 生命周期。
会话分组用于整理当前登录用户的会话列表。它管理 conversationID 与分组的关系,不会创建聊天群组、修改群成员,也不会改变消息发送目标。
iOS SDK 通过随 OpenIMSDK 发布的 OpenIMCore Objective-C 函数提供会话分组能力,尚未封装成 OIMManager 高阶 model API。请求、返回结果和 listener 数据均为 JSON NSString;应用应使用 NSJSONSerialization 解析,不要虚构 OIMConversationGroup 类。
分组类型
| 枚举值 | 数值 | 含义 |
|---|---|---|
0 | 0 | 普通自定义分组,由用户手动创建与管理。 |
1 | 1 | 规则筛选分组,由服务端或 SDK 规则维护。 |
2 | 2 | 全部类型,仅用于查询入参,不可用于创建分组。 |
普通用户分类使用 0。筛选分组的生成规则取决于当前 OpenIM 服务端部署配置。
可用操作
设置会话分组 listener
Open_im_sdkSetConversationGroupListener 只保存一个 Open_im_sdk_callbackOnConversationGroupListener。它没有公开的 remove 或 unset 函数,因此应由账号级状态层强引用并集中设置一次。
#import <OpenIMSDK/CallbackProxy.h>
@import OpenIMCore;
@interface ConversationGroupStore () <Open_im_sdk_callbackOnConversationGroupListener>
@end
@implementation ConversationGroupStore
- (void)startListening {
Open_im_sdkSetConversationGroupListener(self);
}
- (void)onConversationGroupAdded:(NSString * _Nullable)json {
[self mergeConversationGroupsJSON:json];
}
- (void)onConversationGroupChanged:(NSString * _Nullable)json {
[self mergeConversationGroupsJSON:json];
}
- (void)onConversationGroupDeleted:(NSString * _Nullable)json {
[self removeConversationGroupsJSON:json];
}
- (void)onConversationGroupMemberAdded:(NSString * _Nullable)json {
[self mergeConversationGroupMembersJSON:json];
}
- (void)onConversationGroupMemberDeleted:(NSString * _Nullable)json {
[self removeConversationGroupMembersJSON:json];
}
@end新增、变更和删除事件提供分组 JSON 数组;成员变更事件提供 group、conversationIDs 和 conversations。分组以 conversationGroupID 为合并标识,分组成员关系结合 conversationGroupID 与 conversationID 合并。
切换账号时,应停止旧 listener 向界面分发,再用新账号的完整 listener 覆盖。调用成功、listener 事件到达和重新查询当前数据是三个独立阶段。
这个页面有帮助吗?