跳到主要内容

数据模型与枚举参考 (Models & Enums)

QXJIMSDK 中所有模型均严格遵循 Swift 6 并发安全规范(实现 Codable、Sendable、Equatable,核心实体额外实现 Identifiable 以方便直接在 SwiftUI List / ForEach 中绑定)。


1. 核心枚举一览​

1.1 平台类型 (IMPlatform)​

枚举值原始值 (Int32)说明
.iOS1iPhone 客户端
.android2Android 手机客户端
.windows3Windows 桌面端
.macOS4macOS 桌面端
.web5Web 浏览器端 (openIM.wasm)
.miniWeb6小程序端
.linux7Linux 桌面端
.androidPad8Android 平板端
.iPad9iPad 客户端
.admin10管理后台系统发出的消息
.harmonyOS11鸿蒙客户端

1.2 会话类型 (IMSessionType)​

枚举值原始值 (Int32)说明
.single1单聊 (si_u1_u2)
.writeGroup2普通群聊(旧版扩散写,已废弃)
.superGroup3工作群/超大群(读扩散,sg_groupID)
.notification4系统通知会话 (sn_...)

1.3 消息状态 (IMMessageStatus)​

枚举值原始值 (Int32)说明
.sending1发送中
.sendSuccess2发送成功
.sendFailed3发送失败
.deleted4已删除
.revoked5已撤回

1.4 消息免打扰选项 (IMReceiveMessageOpt)​

枚举值原始值 (Int32)说明
.receive0正常接收消息并离线推送
.notReceive1拒收消息
.receiveNotNotify2接收在线/离线同步消息,但不触发离线推送且不计入总未读数(免打扰)

1.5 群成员角色 (IMGroupRoleLevel)​

枚举值原始值 (Int32)说明
.member20普通群成员
.admin60群管理员
.owner100群主

2. Protobuf 包装器类型 (ProtobufValueWrapper)​

在 OpenIM Go 核心层中,部分更新请求(如 SetConversation、SetGroupInfo、SetGroupMemberInfo、UpdateFriends、SetSelfInfo)使用 github.com/openimsdk/protocol/wrapperspb 区分“字段未传 (nil)”与“字段传零值 (false / "" / 0)”。

QXJIMSDK 的请求结构体(如 IMConversationSetRequest、IMSetGroupInfoRequest)已在 init 构造器中为您自动封装好 ProtobufValueWrapper,业务层直接传入普通 Swift 可选值(如 isPinned: true)即可,无需关心底层 JSON {"value": true} 结构。