提交
This commit is contained in:
12
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/Headers/ImSDK_Plus.h
generated
Executable file
12
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/Headers/ImSDK_Plus.h
generated
Executable file
@@ -0,0 +1,12 @@
|
||||
// Copyright (c) 2023 Tencent. All rights reserved.
|
||||
|
||||
|
||||
#import <ImSDK_Plus/TIMErrorCode.h>
|
||||
#import <ImSDK_Plus/V2TIMManager.h>
|
||||
#import <ImSDK_Plus/V2TIMManager+APNS.h>
|
||||
#import <ImSDK_Plus/V2TIMManager+Friendship.h>
|
||||
#import <ImSDK_Plus/V2TIMManager+Conversation.h>
|
||||
#import <ImSDK_Plus/V2TIMManager+Group.h>
|
||||
#import <ImSDK_Plus/V2TIMManager+Message.h>
|
||||
#import <ImSDK_Plus/V2TIMManager+Signaling.h>
|
||||
#import <ImSDK_Plus/V2TIMManager+VOIP.h>
|
||||
428
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/Headers/TIMErrorCode.h
generated
Executable file
428
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/Headers/TIMErrorCode.h
generated
Executable file
@@ -0,0 +1,428 @@
|
||||
// Copyright (c) 2020 Tencent. All rights reserved.
|
||||
|
||||
#ifndef TIM_ERROR_CODE_H_
|
||||
#define TIM_ERROR_CODE_H_
|
||||
|
||||
enum ERROR_CODE {
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// (一)IM SDK 的错误码
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// 通用错误码
|
||||
|
||||
ERR_SUCC = 0, ///< 无错误。
|
||||
ERR_IN_PROGESS = 6015, ///< 执行中,请做好接口调用控制,例如,第一次初始化操作在回调前,后续的初始化操作会返回该错误码。
|
||||
ERR_INVALID_PARAMETERS = 6017, ///< 参数无效,请检查参数是否符合要求,具体可查看错误信息进一步定义哪个字段。
|
||||
ERR_IO_OPERATION_FAILED = 6022, ///< 操作本地 IO 错误,检查是否有读写权限,磁盘是否已满。
|
||||
ERR_INVALID_JSON = 6027, ///< 错误的 JSON 格式,请检查参数是否符合接口的要求,具体可查看错误信息进一步定义哪个字段。
|
||||
ERR_OUT_OF_MEMORY = 6028, ///< 内存不足,可能存在内存泄漏,iOS 平台使用 Instrument 工具,Android 平台使用 Profiler 工具,分析出什么地方的内存占用高。
|
||||
ERR_PARSE_RESPONSE_FAILED = 6001, ///< PB 解析失败,内部错误,可 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 提供使用接口、错误码、错误信息给客服解决。
|
||||
ERR_SERIALIZE_REQ_FAILED = 6002, ///< PB 序列化失败,内部错误,可 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 提供使用接口、错误码、错误信息给客服解决。
|
||||
ERR_SDK_NOT_INITIALIZED = 6013, ///< IM SDK 未初始化,初始化成功回调之后重试。
|
||||
ERR_LOADMSG_FAILED = 6005, ///< 加载本地数据库操作失败,可能存储文件有损坏,可 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 联系客服定位具体问题。
|
||||
ERR_DATABASE_OPERATE_FAILED = 6019, ///< 本地数据库操作失败,可能是部分目录无权限或者数据库文件已损坏。
|
||||
ERR_SDK_COMM_CROSS_THREAD = 7001, ///< 跨线程错误,不能在跨越不同线程中执行,内部错误,可 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 提供使用接口、错误码、错误信息给客服解决。
|
||||
ERR_SDK_COMM_TINYID_EMPTY = 7002, ///< TinyId 为空,内部错误,可 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 提供使用接口、错误码、错误信息给客服解决。
|
||||
ERR_SDK_COMM_INVALID_IDENTIFIER = 7003, ///< Identifier 非法,必须不为空,要求可打印 ASCII 字符(0x20-0x7e),长度不超过32字节。
|
||||
ERR_SDK_COMM_FILE_NOT_FOUND = 7004, ///< 文件不存在,请检查文件路径是否正确。
|
||||
ERR_SDK_COMM_FILE_TOO_LARGE = 7005, ///< 文件大小超出了限制,图片、语音最大限制是28MB,视频、文件最大限制是100MB
|
||||
ERR_SDK_COMM_FILE_SIZE_EMPTY = 7006, ///< 空文件,要求文件大小不是0字节,如果上传图片、语音、视频或文件,请检查文件是否正确生成。
|
||||
ERR_SDK_COMM_FILE_OPEN_FAILED = 7007, ///< 文件打开失败,请检查文件是否存在,或者已被独占打开,引起 SDK 打开失败。
|
||||
ERR_SDK_COMM_API_CALL_FREQUENCY_LIMIT = 7008, ///< API 调用超频
|
||||
ERR_SDK_INTERFACE_NOT_SUPPORT = 7013, ///< 套餐包不支持该接口的使用,请升级到旗舰版套餐
|
||||
ERR_SDK_INVALID_OPERATION = 7014, ///< 非法请求
|
||||
|
||||
// 帐号错误码
|
||||
|
||||
ERR_SDK_NOT_LOGGED_IN = 6014, ///< IM SDK 未登录,请先登录,成功回调之后重试,或者已被踢下线,可使用 TIMManager getLoginUser 检查当前是否在线。
|
||||
ERR_NO_PREVIOUS_LOGIN = 6026, ///< 自动登录时,并没有登录过该用户,这时候请调用 login 接口重新登录。
|
||||
ERR_USER_SIG_EXPIRED = 6206, ///< UserSig 过期,请重新获取有效的 UserSig 后再重新登录。
|
||||
ERR_LOGIN_KICKED_OFF_BY_OTHER = 6208, ///< 其他终端登录同一个帐号,引起已登录的帐号被踢,需重新登录。
|
||||
ERR_SDK_ACCOUNT_LOGIN_IN_PROCESS = 7501, ///< 登录正在执行中,例如,第一次 login 或 autoLogin 操作在回调前,后续的 login 或 autoLogin 操作会返回该错误码。
|
||||
ERR_SDK_ACCOUNT_LOGOUT_IN_PROCESS = 7502, ///< 登出正在执行中,例如,第一次 logout 操作在回调前,后续的 logout 操作会返回该错误码。
|
||||
ERR_SDK_ACCOUNT_TLS_INIT_FAILED = 7503, ///< TLS SDK 初始化失败,内部错误,可 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 提供使用接口、错误码、错误信息给客服解决。
|
||||
ERR_SDK_ACCOUNT_TLS_NOT_INITIALIZED = 7504, ///< TLS SDK 未初始化,内部错误,可 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 提供使用接口、错误码、错误信息给客服解决。
|
||||
ERR_SDK_ACCOUNT_TLS_TRANSPKG_ERROR = 7505, ///< TLS SDK TRANS 包格式错误,内部错误,可 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 提供使用接口、错误码、错误信息给客服解决。
|
||||
ERR_SDK_ACCOUNT_TLS_DECRYPT_FAILED = 7506, ///< TLS SDK 解密失败,内部错误,可 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 提供使用接口、错误码、错误信息给客服解决。
|
||||
ERR_SDK_ACCOUNT_TLS_REQUEST_FAILED = 7507, ///< TLS SDK 请求失败,内部错误,可 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 提供使用接口、错误码、错误信息给客服解决。
|
||||
ERR_SDK_ACCOUNT_TLS_REQUEST_TIMEOUT = 7508, ///< TLS SDK 请求超时,内部错误,可 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 提供使用接口、错误码、错误信息给客服解决。
|
||||
|
||||
// 消息错误码
|
||||
|
||||
ERR_INVALID_CONVERSATION = 6004, ///< 会话无效,getConversation 时检查是否已经登录,如未登录获取会话,会有此错误码返回。
|
||||
ERR_FILE_TRANS_AUTH_FAILED = 6006, ///< 文件传输鉴权失败,可 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 提供使用接口、错误码、错误信息给客服解决。
|
||||
ERR_FILE_TRANS_NO_SERVER = 6007, ///< 文件传输获取 Server 列表失败,可 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 提供使用接口、错误码、错误信息给客服解决。
|
||||
ERR_FILE_TRANS_UPLOAD_FAILED = 6008, ///< 文件传输上传失败,请检查网络是否连接
|
||||
ERR_IMAGE_UPLOAD_FAILED_NOTIMAGE = 6031, ///< 文件传输上传失败,请检查上传的图片是否能够正常打开。
|
||||
ERR_FILE_TRANS_DOWNLOAD_FAILED = 6009, ///< 文件传输下载失败,请检查网络,或者文件、语音是否已经过期,目前资源文件存储7天。
|
||||
ERR_HTTP_REQ_FAILED = 6010, ///< HTTP 请求失败,请检查 URL 地址是否合法,可在网页浏览器尝试访问该 URL 地址。
|
||||
ERR_INVALID_MSG_ELEM = 6016, ///< IM SDK 无效消息 elem,具体可查看错误信息进一步定义哪个字段。
|
||||
ERR_INVALID_SDK_OBJECT = 6021, ///< 无效的对象,例如用户自己生成 TIMImage 对象,或内部赋值错误导致对象无效。
|
||||
ERR_SDK_MSG_BODY_SIZE_LIMIT = 8001, ///< 消息长度超出限制,消息长度不要超过12k,消息长度是各个 elem 长度的总和,elem 长度是所有 elem 字段的长度总和。
|
||||
ERR_SDK_MSG_KEY_REQ_DIFFER_RSP = 8002, ///< 消息 KEY 错误,内部错误,网络请求包的 KEY 和 回复包的不一致。
|
||||
ERR_SDK_IMAGE_CONVERT_ERROR = 8003, ///< 万象优图 HTTP 请求失败。
|
||||
ERR_MERGER_MSG_LAYERS_OVER_LIMIT = 8005, ///< 合并消息嵌套层数超过上限(上限 100 层)。
|
||||
ERR_SDK_MSG_MODIFY_CONFLICT = 8006, ///< 消息修改冲突,您请求修改的消息已经被其他人修改。
|
||||
|
||||
ERR_SDK_SIGNALING_INVALID_INVITE_ID = 8010, ///< 信令请求 ID 无效或已经被处理过。
|
||||
ERR_SDK_SIGNALING_NO_PERMISSION = 8011, ///< 信令请求无权限,比如取消非自己发起的邀请。
|
||||
ERR_SDK_SIGNALING_ALREADY_EXISTS = 8012, ///< 信令邀请已存在。
|
||||
|
||||
// 群组错误码
|
||||
|
||||
ERR_SDK_GROUP_INVALID_ID = 8501, ///< 群组 ID 非法,自定义群组 ID 必须为可打印 ASCII 字符(0x20-0x7e),最长48个字节,且前缀不能为 @TGS#(避免与服务端默认分配的群组 ID 混淆)。
|
||||
ERR_SDK_GROUP_INVALID_NAME = 8502, ///< 群名称非法,群名称最长30字节,字符编码必须是 UTF-8 ,如果包含中文,可能用多个字节表示一个中文字符,请注意检查字符串的字节长度。
|
||||
ERR_SDK_GROUP_INVALID_INTRODUCTION = 8503, ///< 群简介非法,群简介最长240字节,字符编码必须是 UTF-8 ,如果包含中文,可能用多个字节表示一个中文字符,请注意检查字符串的字节长度。
|
||||
ERR_SDK_GROUP_INVALID_NOTIFICATION = 8504, ///< 群公告非法,群公告最长300字节,字符编码必须是 UTF-8 ,如果包含中文,可能用多个字节表示一个中文字符,请注意检查字符串的字节长度。
|
||||
ERR_SDK_GROUP_INVALID_FACE_URL = 8505, ///< 群头像 URL 非法,群头像 URL 最长100字节,可在网页浏览器尝试访问该 URL 地址。
|
||||
ERR_SDK_GROUP_INVALID_NAME_CARD = 8506, ///< 群名片非法,群名片最长50字节,字符编码必须是 UTF-8 ,如果包含中文,可能用多个字节表示一个中文字符,请注意检查字符串的字节长度。
|
||||
ERR_SDK_GROUP_MEMBER_COUNT_LIMIT = 8507, ///< 超过群组成员数的限制,在创建群和邀请成员时,指定的成员数超出限制,最大群成员数量:私有群是200人,公开群是2000人,聊天室是10000人,音视频聊天室和在线成员广播大群无限制。
|
||||
ERR_SDK_GROUP_JOIN_PRIVATE_GROUP_DENY = 8508, ///< 不允许申请加入 Private 群组,任意群成员可邀请入群,且无需被邀请人同意。
|
||||
ERR_SDK_GROUP_INVITE_SUPER_DENY = 8509, ///< 不允许邀请角色为群主的成员,请检查角色字段是否填写正确。
|
||||
ERR_SDK_GROUP_INVITE_NO_MEMBER = 8510, ///< 不允许邀请0个成员,请检查成员字段是否填写正确。
|
||||
ERR_SDK_GROUP_ATTR_FREQUENCY_LIMIT = 8511, ///< 群属性接口操作限制:增删改接口后台限制1秒5次,查接口 SDK 限制5秒20次。
|
||||
|
||||
// 关系链错误码
|
||||
|
||||
ERR_SDK_FRIENDSHIP_INVALID_PROFILE_KEY = 9001, ///< 资料字段非法,资料支持标配字段及自定义字段,其中自定义字段的关键字,必须是英文字母,且长度不得超过8字节,自定义字段的值最长不能超过500字节。
|
||||
ERR_SDK_FRIENDSHIP_INVALID_ADD_REMARK = 9002, ///< 备注字段非法,最大96字节,字符编码必须是 UTF-8 ,如果包含中文,可能用多个字节表示一个中文字符,请注意检查字符串的字节长度。
|
||||
ERR_SDK_FRIENDSHIP_INVALID_ADD_WORDING = 9003, ///< 请求添加好友的请求说明字段非法,最大120字节,字符编码必须是 UTF-8 ,如果包含中文,可能用多个字节表示一个中文字符,请注意检查字符串的字节长度。
|
||||
ERR_SDK_FRIENDSHIP_INVALID_ADD_SOURCE = 9004, ///< 请求添加好友的添加来源字段非法,来源需要添加“AddSource_Type_”前缀。
|
||||
ERR_SDK_FRIENDSHIP_FRIEND_GROUP_EMPTY = 9005, ///< 好友分组字段非法,必须不为空,每个分组的名称最长30字节,字符编码必须是 UTF-8 ,如果包含中文,可能用多个字节表示一个中文字符,请注意检查字符串的字节长度。
|
||||
|
||||
// 网络错误码
|
||||
|
||||
ERR_SDK_NET_ENCODE_FAILED = 9501, ///< 网络加密失败,内部错误。
|
||||
ERR_SDK_NET_DECODE_FAILED = 9502, ///< 网络数据解密失败,内部错误。
|
||||
ERR_SDK_NET_AUTH_INVALID = 9503, ///< 未完成鉴权,可能登录未完成,请在登录完成后再操作。
|
||||
ERR_SDK_NET_COMPRESS_FAILED = 9504, ///< 数据包压缩失败,内部错误。
|
||||
ERR_SDK_NET_UNCOMPRESS_FAILED = 9505, ///< 数据包解压失败,内部错误。
|
||||
ERR_SDK_NET_FREQ_LIMIT = 9506, ///< 调用频率限制,最大每秒发起 5 次请求。
|
||||
ERR_SDK_NET_REQ_COUNT_LIMIT = 9507, ///< 请求队列満,超过同时请求的数量限制,最大同时发起1000个请求。
|
||||
ERR_SDK_NET_DISCONNECT = 9508, ///< 网络已断开,未建立连接,或者建立 socket 连接时,检测到无网络。
|
||||
ERR_SDK_NET_ALLREADY_CONN = 9509, ///< 网络连接已建立,重复创建连接,内部错误。
|
||||
ERR_SDK_NET_CONN_TIMEOUT = 9510, ///< 建立网络连接超时,请等网络恢复后重试。
|
||||
ERR_SDK_NET_CONN_REFUSE = 9511, ///< 网络连接已被拒绝,请求过于频繁,服务端拒绝服务。
|
||||
ERR_SDK_NET_NET_UNREACH = 9512, ///< 没有到达网络的可用路由,请等网络恢复后重试。
|
||||
ERR_SDK_NET_SOCKET_NO_BUFF = 9513, ///< 系统中没有足够的缓冲区空间资源可用来完成调用,系统过于繁忙,内部错误。
|
||||
ERR_SDK_NET_RESET_BY_PEER = 9514, ///< 对端重置了连接,可能服务端过载,SDK 内部会自动重连,请等网络连接成功 onConnSucc ( iOS ) 或 onConnected ( Android ) 回调后重试。
|
||||
ERR_SDK_NET_SOCKET_INVALID = 9515, ///< socket 套接字无效,内部错误。
|
||||
ERR_SDK_NET_HOST_GETADDRINFO_FAILED = 9516, ///< IP 地址解析失败,内部错误,可能是本地 imsdk_config 配置文件被损坏,读取到到 IP 地址非法。
|
||||
ERR_SDK_NET_CONNECT_RESET = 9517, ///< 网络连接到中间节点或服务端重置,引起连接失效,内部错误,SDK 内部会自动重连,请等网络连接成功 onConnSucc ( iOS ) 或 onConnected ( Android ) 回调后重试。
|
||||
ERR_SDK_NET_WAIT_INQUEUE_TIMEOUT = 9518, ///< 请求包等待进入待发送队列超时,发送时网络连接建立比较慢 或 频繁断网重连时,会出现该错误,请检查网络连接是否正常。
|
||||
ERR_SDK_NET_WAIT_SEND_TIMEOUT = 9519, ///< 请求包已进入 IM SDK 待发送队列,等待进入操作系统的网络层时超时。一般可能原因是本地网络受限/不通或本地网络与 IM SDK 后台连接不通。建议用不同的网络环境分别运行 IM SDK 来确认是否因当前网络环境问题引起。
|
||||
ERR_SDK_NET_WAIT_ACK_TIMEOUT = 9520, ///< 请求包已由 IM SDK 待发送队列进入操作系统网络层,等待服务端回包超时。一般可能原因是本地网络受限/不通或本地网络与 IM SDK 后台连接不通。建议用不同的网络环境分别运行 IM SDK 来确认是否因当前网络环境问题引起。
|
||||
ERR_SDK_NET_WAIT_SEND_REMAINING_TIMEOUT = 9521, ///< 请求包已进入待发送队列,部分数据已发送,等待发送剩余部分出现超时,可能上行带宽不足,请检查网络是否畅通,在回调错误时检测有联网,内部错误。
|
||||
ERR_SDK_NET_PKG_SIZE_LIMIT = 9522, ///< 请求包长度大于限制,最大支持 1MB 。
|
||||
ERR_SDK_NET_WAIT_SEND_TIMEOUT_NO_NETWORK = 9523, ///< 请求包已进入待发送队列,等待进入系统的网络 buffer 超时,数据包较多 或 发送线程处理不过来,在回调错误码时检测到没有联网。
|
||||
ERR_SDK_NET_WAIT_ACK_TIMEOUT_NO_NETWORK = 9524, ///< 请求包已进入系统的网络 buffer ,等待服务端回包超时,可能请求包没离开终端设备、中间路由丢弃、服务端意外丢包或回包被系统网络层丢弃,在回调错误码时检测到没有联网。
|
||||
ERR_SDK_NET_SEND_REMAINING_TIMEOUT_NO_NETWORK = 9525, ///< 请求包已进入待发送队列,部分数据已发送,等待发送剩余部分出现超时,可能上行带宽不足,请检查网络是否畅通,在回调错误码时检测到没有联网。
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// (二)服务端的错误码
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// 网络接入层的错误码
|
||||
|
||||
ERR_SVR_SSO_CONNECT_LIMIT = -302, // Server 的连接数量超出限制,服务端拒绝服务。
|
||||
ERR_SVR_SSO_VCODE = -10000, // 下发验证码标志错误。
|
||||
ERR_SVR_SSO_D2_EXPIRED = -10001, // Key 过期。Key 是根据 UserSig 生成的内部票据,Key 的有效期小于或等于 UserSig 的有效期。请重新调用 V2TIMManager.getInstance().login 登录接口生成新的 Key。
|
||||
ERR_SVR_SSO_A2_UP_INVALID = -10003, // Ticket 过期。Ticket 是根据 UserSig 生成的内部票据,Ticket 的有效期小于或等于 UserSig 的有效期。请重新调用 V2TIMManager.getInstance().login 登录接口生成新的 Ticket。
|
||||
ERR_SVR_SSO_A2_DOWN_INVALID = -10004, // 票据验证没通过或者被安全打击。请重新调用 V2TIMManager.getInstance().login 登录接口生成新的票据。
|
||||
ERR_SVR_SSO_EMPTY_KEY = -10005, // 不允许空 Key。
|
||||
ERR_SVR_SSO_UIN_INVALID = -10006, // Key 中的帐号和请求包头的帐号不匹配。
|
||||
ERR_SVR_SSO_VCODE_TIMEOUT = -10007, // 验证码下发超时。
|
||||
ERR_SVR_SSO_NO_IMEI_AND_A2 = -10008, // 需要带上 Key 和 Ticket。
|
||||
ERR_SVR_SSO_COOKIE_INVALID = -10009, // Cookie 检查不匹配。
|
||||
ERR_SVR_SSO_DOWN_TIP = -10101, // 下发提示语时 Key 过期。Key 是根据 UserSig 生成的内部票据,Key 的有效期小于或等于 UserSig 的有效期。请重新调用 V2TIMManager.getInstance().login 登录接口生成新的 Key。
|
||||
ERR_SVR_SSO_DISCONNECT = -10102, // 网络连接断开。
|
||||
ERR_SVR_SSO_IDENTIFIER_INVALID = -10103, // 失效身份。
|
||||
ERR_SVR_SSO_CLIENT_CLOSE = -10104, // 终端自动退出。
|
||||
ERR_SVR_SSO_MSFSDK_QUIT = -10105, // MSFSDK 自动退出。
|
||||
ERR_SVR_SSO_D2KEY_WRONG = -10106, // 解密失败次数超过阈值,通知终端需要重置,请重新调用 TIMManager.getInstance().login 登录接口生成新的 Key。
|
||||
ERR_SVR_SSO_UNSURPPORT = -10107, // 不支持聚合,给终端返回统一的错误码。终端在该 TCP 长连接上停止聚合。
|
||||
ERR_SVR_SSO_PREPAID_ARREARS = -10108, // 预付费欠费。
|
||||
ERR_SVR_SSO_PACKET_WRONG = -10109, // 请求包格式错误。
|
||||
ERR_SVR_SSO_APPID_BLACK_LIST = -10110, // SDKAppID 黑名单。
|
||||
ERR_SVR_SSO_CMD_BLACK_LIST = -10111, // SDKAppID 设置 service cmd 黑名单。
|
||||
ERR_SVR_SSO_APPID_WITHOUT_USING = -10112, // SDKAppID 停用。
|
||||
ERR_SVR_SSO_FREQ_LIMIT = -10113, // 频率限制(用户),频率限制是设置针对某一个协议的每秒请求数的限制。
|
||||
ERR_SVR_SSO_OVERLOAD = -10114, // 过载丢包(系统),连接的服务端处理过多请求,处理不过来,拒绝服务。
|
||||
ERR_SVR_SSO_FREQUENCY_LIMIT = -20009, // 终端访问接口超频。
|
||||
|
||||
// 资源文件错误码
|
||||
|
||||
ERR_SVR_RES_NOT_FOUND = 114000, ///< 要发送的资源文件不存在。
|
||||
ERR_SVR_RES_ACCESS_DENY = 114001, ///< 要发送的资源文件不允许访问。
|
||||
ERR_SVR_RES_SIZE_LIMIT = 114002, ///< 文件大小超过限制。
|
||||
ERR_SVR_RES_SEND_CANCEL = 114003, ///< 用户取消发送,如发送过程中登出等原因。
|
||||
ERR_SVR_RES_READ_FAILED = 114004, ///< 读取文件内容失败。
|
||||
ERR_SVR_RES_TRANSFER_TIMEOUT = 114005, ///< 资源文件(如图片、文件、语音、视频)传输超时,一般是网络问题导致。
|
||||
ERR_SVR_RES_INVALID_PARAMETERS = 114011, ///< 参数非法。
|
||||
ERR_SVR_RES_INVALID_FILE_MD5 = 115066, ///< 文件 MD5 校验失败。
|
||||
ERR_SVR_RES_INVALID_PART_MD5 = 115068, ///< 分片 MD5 校验失败。
|
||||
|
||||
// 后台公共错误码
|
||||
|
||||
ERR_SVR_COMM_INVALID_HTTP_URL = 60002, ///< HTTP 解析错误 ,请检查 HTTP 请求 URL 格式。
|
||||
ERR_SVR_COMM_REQ_JSON_PARSE_FAILED = 60003, ///< HTTP 请求 JSON 解析错误,请检查 JSON 格式。
|
||||
ERR_SVR_COMM_INVALID_ACCOUNT = 60004, ///< 请求 URI 或 JSON 包体中 Identifier 或 UserSig 错误。
|
||||
ERR_SVR_COMM_INVALID_ACCOUNT_EX = 60005, ///< 请求 URI 或 JSON 包体中 Identifier 或 UserSig 错误。
|
||||
ERR_SVR_COMM_INVALID_SDKAPPID = 60006, ///< SDKAppID 失效,请核对 SDKAppID 有效性。
|
||||
ERR_SVR_COMM_REST_FREQ_LIMIT = 60007, ///< REST 接口调用频率超过限制,请降低请求频率。
|
||||
ERR_SVR_COMM_REQUEST_TIMEOUT = 60008, ///< 服务请求超时或 HTTP 请求格式错误,请检查并重试。
|
||||
ERR_SVR_COMM_INVALID_RES = 60009, ///< 请求资源错误,请检查请求 URL。
|
||||
ERR_SVR_COMM_ID_NOT_ADMIN = 60010, ///< REST API 请求的 Identifier 字段请填写 App 管理员帐号。
|
||||
ERR_SVR_COMM_SDKAPPID_FREQ_LIMIT = 60011, ///< SDKAppID 请求频率超限,请降低请求频率。
|
||||
ERR_SVR_COMM_SDKAPPID_MISS = 60012, ///< REST 接口需要带 SDKAppID,请检查请求 URL 中的 SDKAppID。
|
||||
ERR_SVR_COMM_RSP_JSON_PARSE_FAILED = 60013, ///< HTTP 响应包 JSON 解析错误。
|
||||
ERR_SVR_COMM_EXCHANGE_ACCOUNT_TIMEUT = 60014, ///< 置换帐号超时。
|
||||
ERR_SVR_COMM_INVALID_ID_FORMAT = 60015, ///< 请求包体 Identifier 类型错误,请确认 Identifier 为字符串格式。
|
||||
ERR_SVR_COMM_SDKAPPID_FORBIDDEN = 60016, ///< SDKAppID 被禁用,请 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 联系客服确认。
|
||||
ERR_SVR_COMM_REQ_FORBIDDEN = 60017, ///< 请求被禁用,请 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 联系客服确认。
|
||||
ERR_SVR_COMM_REQ_FREQ_LIMIT = 60018, ///< 请求过于频繁,请稍后重试。
|
||||
ERR_SVR_COMM_REQ_FREQ_LIMIT_EX = 60019, ///< 请求过于频繁,请稍后重试。
|
||||
ERR_SVR_COMM_INVALID_SERVICE = 60020, ///< 未购买套餐包或购买的套餐包正在配置中暂未生效,请五分钟后再次尝试。
|
||||
ERR_SVR_COMM_SENSITIVE_TEXT = 80001, ///< 文本安全打击,文本中可能包含敏感词汇。
|
||||
ERR_SVR_COMM_BODY_SIZE_LIMIT = 80002, ///< 发消息包体过长,目前支持最大12k消息包体长度,请减少包体大小重试。
|
||||
|
||||
// 帐号错误码
|
||||
|
||||
ERR_SVR_ACCOUNT_USERSIG_EXPIRED = 70001, ///< UserSig 已过期,请重新生成 UserSig,建议 UserSig 有效期不小于24小时。
|
||||
ERR_SVR_ACCOUNT_USERSIG_EMPTY = 70002, ///< UserSig 长度为0,请检查传入的 UserSig 是否正确。
|
||||
ERR_SVR_ACCOUNT_USERSIG_CHECK_FAILED = 70003, ///< UserSig 校验失败,请确认下 UserSig 内容是否被截断,如缓冲区长度不够导致的内容截断。
|
||||
ERR_SVR_ACCOUNT_USERSIG_CHECK_FAILED_EX = 70005, ///< UserSig 校验失败,可用工具自行验证生成的 UserSig 是否正确。
|
||||
ERR_SVR_ACCOUNT_USERSIG_MISMATCH_PUBLICKEY = 70009, ///< 用公钥验证 UserSig 失败,请确认生成的 UserSig 使用的私钥和 SDKAppID 是否对应。
|
||||
ERR_SVR_ACCOUNT_USERSIG_MISMATCH_ID = 70013, ///< 请求的 Identifier 与生成 UserSig 的 Identifier 不匹配。
|
||||
ERR_SVR_ACCOUNT_USERSIG_MISMATCH_SDKAPPID = 70014, ///< 请求的 SDKAppID 与生成 UserSig 的 SDKAppID 不匹配。
|
||||
ERR_SVR_ACCOUNT_USERSIG_PUBLICKEY_NOT_FOUND = 70016, ///< 验证 UserSig 时公钥不存在。请先登录控制台下载私钥,下载私钥的具体方法可参考 [下载签名用的私钥](https://cloud.tencent.com/document/product/269/32688#.E4.B8.8B.E8.BD.BD.E7.AD.BE.E5.90.8D.E7.94.A8.E7.9A.84.E7.A7.81.E9.92.A5) 。
|
||||
ERR_SVR_ACCOUNT_SDKAPPID_NOT_FOUND = 70020, ///< SDKAppID 未找到,请在云通信 IM 控制台确认应用信息。
|
||||
ERR_SVR_ACCOUNT_INVALID_USERSIG = 70052, ///< UserSig 已经失效,请重新生成,再次尝试。
|
||||
ERR_SVR_ACCOUNT_NOT_FOUND = 70107, ///< 请求的用户帐号不存在。
|
||||
ERR_SVR_ACCOUNT_SEC_RSTR = 70114, ///< 安全原因被限制。
|
||||
ERR_SVR_ACCOUNT_INTERNAL_TIMEOUT = 70169, ///< 服务端内部超时,请重试。
|
||||
ERR_SVR_ACCOUNT_INVALID_COUNT = 70206, ///< 请求中批量数量不合法。
|
||||
ERR_SVR_ACCOUNT_INVALID_PARAMETERS = 70402, ///< 参数非法,请检查必填字段是否填充,或者字段的填充是否满足协议要求。
|
||||
ERR_SVR_ACCOUNT_ADMIN_REQUIRED = 70403, ///< 请求需要 App 管理员权限。
|
||||
ERR_SVR_ACCOUNT_FREQ_LIMIT = 70050, ///< 因失败且重试次数过多导致被限制,请检查 UserSig 是否正确,一分钟之后再试。
|
||||
ERR_SVR_ACCOUNT_BLACKLIST = 70051, ///< 帐号被拉入黑名单。
|
||||
ERR_SVR_ACCOUNT_COUNT_LIMIT = 70398, ///< 创建帐号数量超过免费体验版数量限制,请升级为专业版。
|
||||
ERR_SVR_ACCOUNT_INTERNAL_ERROR = 70500, ///< 服务端内部错误,请重试。
|
||||
ERR_SVR_ACCOUNT_USER_STATUS_DISABLED = 72001, ///< 用户状态能力需要登录 IM 控制台开启
|
||||
|
||||
// 资料错误码
|
||||
|
||||
ERR_SVR_PROFILE_INVALID_PARAMETERS = 40001, ///< 请求参数错误,请根据错误描述检查请求是否正确。
|
||||
ERR_SVR_PROFILE_ACCOUNT_MISS = 40002, ///< 请求参数错误,没有指定需要拉取资料的用户帐号。
|
||||
ERR_SVR_PROFILE_ACCOUNT_NOT_FOUND = 40003, ///< 请求的用户帐号不存在。
|
||||
ERR_SVR_PROFILE_ADMIN_REQUIRED = 40004, ///< 请求需要 App 管理员权限。
|
||||
ERR_SVR_PROFILE_SENSITIVE_TEXT = 40005, ///< 资料字段中包含敏感词。
|
||||
ERR_SVR_PROFILE_INTERNAL_ERROR = 40006, ///< 服务端内部错误,请稍后重试。
|
||||
ERR_SVR_PROFILE_READ_PERMISSION_REQUIRED = 40007, ///< 没有资料字段的读权限,详情可参见 [资料字段](https://cloud.tencent.com/document/product/269/1500#.E8.B5.84.E6.96.99.E5.AD.97.E6.AE.B5) 。
|
||||
ERR_SVR_PROFILE_WRITE_PERMISSION_REQUIRED = 40008, ///< 没有资料字段的写权限,详情可参见 [资料字段](https://cloud.tencent.com/document/product/269/1500#.E8.B5.84.E6.96.99.E5.AD.97.E6.AE.B5) 。
|
||||
ERR_SVR_PROFILE_TAG_NOT_FOUND = 40009, ///< 资料字段的 Tag 不存在。
|
||||
ERR_SVR_PROFILE_SIZE_LIMIT = 40601, ///< 资料字段的 Value 长度超过500字节。
|
||||
ERR_SVR_PROFILE_VALUE_ERROR = 40605, ///< 标配资料字段的 Value 错误,详情可参见 [标配资料字段](https://cloud.tencent.com/doc/product/269/1500#.E6.A0.87.E9.85.8D.E8.B5.84.E6.96.99.E5.AD.97.E6.AE.B5) 。
|
||||
ERR_SVR_PROFILE_INVALID_VALUE_FORMAT = 40610, ///< 资料字段的 Value 类型不匹配,详情可参见 [标配资料字段](https://cloud.tencent.com/doc/product/269/1500#.E6.A0.87.E9.85.8D.E8.B5.84.E6.96.99.E5.AD.97.E6.AE.B5) 。
|
||||
|
||||
// 关系链错误码
|
||||
|
||||
ERR_SVR_FRIENDSHIP_INVALID_PARAMETERS = 30001, ///< 请求参数错误,请根据错误描述检查请求是否正确。
|
||||
ERR_SVR_FRIENDSHIP_INVALID_SDKAPPID = 30002, ///< SDKAppID 不匹配。
|
||||
ERR_SVR_FRIENDSHIP_ACCOUNT_NOT_FOUND = 30003, ///< 请求的用户帐号不存在。
|
||||
ERR_SVR_FRIENDSHIP_ADMIN_REQUIRED = 30004, ///< 请求需要 App 管理员权限。
|
||||
ERR_SVR_FRIENDSHIP_SENSITIVE_TEXT = 30005, ///< 关系链字段中包含敏感词。
|
||||
ERR_SVR_FRIENDSHIP_INTERNAL_ERROR = 30006, ///< 服务端内部错误,请重试。
|
||||
ERR_SVR_FRIENDSHIP_NET_TIMEOUT = 30007, ///< 网络超时,请稍后重试。
|
||||
ERR_SVR_FRIENDSHIP_WRITE_CONFLICT = 30008, ///< 并发写导致写冲突,建议使用批量方式。
|
||||
ERR_SVR_FRIENDSHIP_ADD_FRIEND_DENY = 30009, ///< 后台禁止该用户发起加好友请求。
|
||||
ERR_SVR_FRIENDSHIP_COUNT_LIMIT = 30010, ///< 自己的好友数已达系统上限。
|
||||
ERR_SVR_FRIENDSHIP_GROUP_COUNT_LIMIT = 30011, ///< 分组已达系统上限。
|
||||
ERR_SVR_FRIENDSHIP_PENDENCY_LIMIT = 30012, ///< 未决数已达系统上限。
|
||||
ERR_SVR_FRIENDSHIP_BLACKLIST_LIMIT = 30013, ///< 黑名单数已达系统上限。
|
||||
ERR_SVR_FRIENDSHIP_PEER_FRIEND_LIMIT = 30014, ///< 对方的好友数已达系统上限。
|
||||
ERR_SVR_FRIENDSHIP_IN_SELF_BLACKLIST = 30515, ///< 请求添加好友时,对方在自己的黑名单中,不允许加好友。
|
||||
ERR_SVR_FRIENDSHIP_ALLOW_TYPE_DENY_ANY = 30516, ///< 请求添加好友时,对方的加好友验证方式是不允许任何人添加自己为好友。
|
||||
ERR_SVR_FRIENDSHIP_IN_PEER_BLACKLIST = 30525, ///< 请求添加好友时,自己在对方的黑名单中,不允许加好友。
|
||||
ERR_SVR_FRIENDSHIP_ALLOW_TYPE_NEED_CONFIRM = 30539, ///< A 请求加 B 为好友,B 的加好友验证方式被设置为“AllowType_Type_NeedConfirm”,这时 A 与 B 之间只能形成未决关系,该返回码用于标识加未决成功,以便与加好友成功的返回码区分开,调用方可以捕捉该错误给用户一个合理的提示。
|
||||
ERR_SVR_FRIENDSHIP_ADD_FRIEND_SEC_RSTR = 30540, ///< 添加好友请求被安全策略打击,请勿频繁发起添加好友请求。
|
||||
ERR_SVR_FRIENDSHIP_PENDENCY_NOT_FOUND = 30614, ///< 请求的未决不存在。
|
||||
ERR_SVR_FRIENDSHIP_DEL_NONFRIEND = 31704, ///< 与请求删除的帐号之间不存在好友关系。
|
||||
ERR_SVR_FRIENDSHIP_DEL_FRIEND_SEC_RSTR = 31707, ///< 删除好友请求被安全策略打击,请勿频繁发起删除好友请求。
|
||||
ERR_SVR_FRIENDSHIP_ACCOUNT_NOT_FOUND_EX = 31804, ///< 请求的用户帐号不存在。
|
||||
|
||||
// 最近联系人错误码
|
||||
|
||||
ERR_SVR_CONV_ACCOUNT_NOT_FOUND = 50001, ///< 请求的用户帐号不存在。
|
||||
ERR_SVR_CONV_INVALID_PARAMETERS = 50002, ///< 请求参数错误,请根据错误描述检查请求是否正确。
|
||||
ERR_SVR_CONV_ADMIN_REQUIRED = 50003, ///< 请求需要 App 管理员权限。
|
||||
ERR_SVR_CONV_INTERNAL_ERROR = 50004, ///< 服务端内部错误,请重试。
|
||||
ERR_SVR_CONV_NET_TIMEOUT = 50005, ///< 网络超时,请稍后重试。
|
||||
|
||||
ERR_SVR_CONV_CONV_MARK_REQ_COUNT_EXCEED_LIMIT = 51006, ///< 一次标记、分组、设置自定义数据的会话数超过了上限(最大支持 100 个)
|
||||
ERR_SVR_CONV_CONV_MARK_OPERATE_FAILED = 51007, ///< Group 会话操作异常,Server 内部错误或 Group 已经解散
|
||||
ERR_SVR_CONV_CONV_MARK_TOTAL_COUNT_EXCEED_LIMIT = 51008, ///< 标记、分组、设置自定义数据的总会话数超过了上限(最大支持 1000 个)
|
||||
ERR_SVR_CONV_CONV_GROUP_NOT_EXIST = 51009, ///< 会话分组不存在
|
||||
ERR_SVR_CONV_CONV_GROUP_TOTAL_COUNT_EXCEED_LIMIT = 51010, ///< 会话分组数超过了上限(最大支持 20 个)
|
||||
ERR_SVR_CONV_CONV_GROUP_NAME_EXCEED_LENGTH = 51011, ///< 会话分组名字节数超过了上限(最大支持 32 字节)
|
||||
|
||||
// 消息错误码
|
||||
|
||||
ERR_SVR_MSG_PKG_PARSE_FAILED = 20001, ///< 请求包非法,请检查发送方和接收方帐号是否存在。
|
||||
ERR_SVR_MSG_INTERNAL_AUTH_FAILED = 20002, ///< 内部鉴权失败。
|
||||
ERR_SVR_MSG_INVALID_ID = 20003, ///< Identifier 无效或者 Identifier 未导入云通信 IM。
|
||||
ERR_SVR_MSG_NET_ERROR = 20004, ///< 网络异常,请重试。
|
||||
ERR_SVR_MSG_INTERNAL_ERROR1 = 20005, ///< 服务端内部错误,请重试。
|
||||
ERR_SVR_MSG_PUSH_DENY = 20006, ///< 触发发送单聊消息之前回调,App 后台返回禁止下发该消息。
|
||||
ERR_SVR_MSG_IN_PEER_BLACKLIST = 20007, ///< 发送单聊消息,被对方拉黑,禁止发送。
|
||||
ERR_SVR_MSG_BOTH_NOT_FRIEND = 20009, ///< 消息发送双方互相不是好友,禁止发送(配置单聊消息校验好友关系才会出现)。
|
||||
ERR_SVR_MSG_NOT_PEER_FRIEND = 20010, ///< 发送单聊消息,自己不是对方的好友(单向关系),禁止发送。
|
||||
ERR_SVR_MSG_NOT_SELF_FRIEND = 20011, ///< 发送单聊消息,对方不是自己的好友(单向关系),禁止发送。
|
||||
ERR_SVR_MSG_SHUTUP_DENY = 20012, ///< 因禁言,禁止发送消息。
|
||||
ERR_SVR_MSG_REVOKE_TIME_LIMIT = 20016, ///< 消息撤回超过了时间限制(默认2分钟)。
|
||||
ERR_SVR_MSG_DEL_RAMBLE_INTERNAL_ERROR = 20018, ///< 删除漫游内部错误。
|
||||
ERR_SVR_MSG_EXTENSION_CONFLICT = 23001, ///< 消息扩展操作冲突。
|
||||
ERR_SVR_MSG_EXTENSION_NOT_EXIST = 23004, ///< 删除的消息扩展不存在。
|
||||
ERR_SVR_MSG_JSON_PARSE_FAILED = 90001, ///< JSON 格式解析失败,请检查请求包是否符合 JSON 规范。
|
||||
ERR_SVR_MSG_INVALID_JSON_BODY_FORMAT = 90002, ///< JSON 格式请求包中 MsgBody 不符合消息格式描述,或者 MsgBody 不是 Array 类型,请参考 [TIMMsgElement 对象](https://cloud.tencent.com/document/product/269/2720#.E6.B6.88.E6.81.AF.E5.85.83.E7.B4.A0timmsgelement) 的定义。
|
||||
ERR_SVR_MSG_INVALID_TO_ACCOUNT = 90003, ///< JSON 格式请求包体中缺少 To_Account 字段或者 To_Account 字段不是 Integer 类型
|
||||
ERR_SVR_MSG_INVALID_RAND = 90005, ///< JSON 格式请求包体中缺少 MsgRandom 字段或者 MsgRandom 字段不是 Integer 类型
|
||||
ERR_SVR_MSG_INVALID_TIMESTAMP = 90006, ///< JSON 格式请求包体中缺少 MsgTimeStamp 字段或者 MsgTimeStamp 字段不是 Integer 类型
|
||||
ERR_SVR_MSG_BODY_NOT_ARRAY = 90007, ///< JSON 格式请求包体中 MsgBody 类型不是 Array 类型,请将其修改为 Array 类型
|
||||
ERR_SVR_MSG_ADMIN_REQUIRED = 90009, ///< 请求需要 App 管理员权限。
|
||||
ERR_SVR_MSG_INVALID_JSON_FORMAT = 90010, ///< JSON 格式请求包不符合消息格式描述,请参考 [TIMMsgElement 对象](https://cloud.tencent.com/document/product/269/2720#.E6.B6.88.E6.81.AF.E5.85.83.E7.B4.A0timmsgelement) 的定义。
|
||||
ERR_SVR_MSG_TO_ACCOUNT_COUNT_LIMIT = 90011, ///< 批量发消息目标帐号超过500,请减少 To_Account 中目标帐号数量。
|
||||
ERR_SVR_MSG_TO_ACCOUNT_NOT_FOUND = 90012, ///< To_Account 没有注册或不存在,请确认 To_Account 是否导入云通信 IM 或者是否拼写错误。
|
||||
ERR_SVR_MSG_TIME_LIMIT = 90026, ///< 消息离线存储时间错误(最多不能超过7天)。
|
||||
ERR_SVR_MSG_INVALID_SYNCOTHERMACHINE = 90031, ///< JSON 格式请求包体中 SyncOtherMachine 字段不是 Integer 类型
|
||||
ERR_SVR_MSG_INVALID_MSGLIFETIME = 90044, ///< JSON 格式请求包体中 MsgLifeTime 字段不是 Integer 类型
|
||||
ERR_SVR_MSG_ACCOUNT_NOT_FOUND = 90048, ///< 请求的用户帐号不存在。
|
||||
ERR_SVR_MSG_INTERNAL_ERROR2 = 90994, ///< 服务内部错误,请重试。
|
||||
ERR_SVR_MSG_INTERNAL_ERROR3 = 90995, ///< 服务内部错误,请重试。
|
||||
ERR_SVR_MSG_INTERNAL_ERROR4 = 91000, ///< 服务内部错误,请重试。
|
||||
ERR_SVR_MSG_INTERNAL_ERROR5 = 90992, ///< 服务内部错误,请重试;如果所有请求都返回该错误码,且 App 配置了第三方回调,请检查 App 服务端是否正常向云通信 IM 后台服务端返回回调结果。
|
||||
ERR_SVR_MSG_BODY_SIZE_LIMIT = 93000, ///< JSON 数据包超长,消息包体请不要超过12k。
|
||||
ERR_SVR_MSG_LONGPOLLING_COUNT_LIMIT = 91101, ///< Web 端长轮询被踢(Web 端同时在线实例个数超出限制)。
|
||||
// 120001 - 130000, ///< 单聊第三方回调返回的自定义错误码。
|
||||
|
||||
// 群组错误码
|
||||
|
||||
ERR_SVR_GROUP_INTERNAL_ERROR = 10002, ///< 服务端内部错误,请重试。
|
||||
ERR_SVR_GROUP_API_NAME_ERROR = 10003, ///< 请求中的接口名称错误,请核对接口名称并重试。
|
||||
ERR_SVR_GROUP_INVALID_PARAMETERS = 10004, ///< 参数非法,请根据错误描述检查请求是否正确。
|
||||
ERR_SVR_GROUP_ACOUNT_COUNT_LIMIT = 10005, ///< 请求包体中携带的帐号数量过多。
|
||||
ERR_SVR_GROUP_FREQ_LIMIT = 10006, ///< 操作频率限制,请尝试降低调用的频率。
|
||||
ERR_SVR_GROUP_PERMISSION_DENY = 10007, ///< 操作权限不足,比如 Public 群组中普通成员尝试执行踢人操作,但只有 App 管理员才有权限。
|
||||
ERR_SVR_GROUP_INVALID_REQ = 10008, ///< 请求非法,可能是请求中携带的签名信息验证不正确,请再次尝试或 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 联系技术客服。
|
||||
ERR_SVR_GROUP_SUPER_NOT_ALLOW_QUIT = 10009, ///< 该群不允许群主主动退出。
|
||||
ERR_SVR_GROUP_NOT_FOUND = 10010, ///< 群组不存在,或者曾经存在过,但是目前已经被解散。
|
||||
ERR_SVR_GROUP_JSON_PARSE_FAILED = 10011, ///< 解析 JSON 包体失败,请检查包体的格式是否符合 JSON 格式。
|
||||
ERR_SVR_GROUP_INVALID_ID = 10012, ///< 发起操作的 Identifier 非法,请检查发起操作的用户 Identifier 是否填写正确。
|
||||
ERR_SVR_GROUP_ALLREADY_MEMBER = 10013, ///< 被邀请加入的用户已经是群成员。
|
||||
ERR_SVR_GROUP_FULL_MEMBER_COUNT = 10014, ///< 群已满员,无法将请求中的用户加入群组,如果是批量加人,可以尝试减少加入用户的数量。
|
||||
ERR_SVR_GROUP_INVALID_GROUPID = 10015, ///< 群组 ID 非法,请检查群组 ID 是否填写正确。
|
||||
ERR_SVR_GROUP_REJECT_FROM_THIRDPARTY = 10016, ///< App 后台通过第三方回调拒绝本次操作。
|
||||
ERR_SVR_GROUP_SHUTUP_DENY = 10017, ///< 因被禁言而不能发送消息,请检查发送者是否被设置禁言。
|
||||
ERR_SVR_GROUP_RSP_SIZE_LIMIT = 10018, ///< 应答包长度超过最大包长(1MB),请求的内容过多,请尝试减少单次请求的数据量。
|
||||
ERR_SVR_GROUP_ACCOUNT_NOT_FOUND = 10019, ///< 请求的用户帐号不存在。
|
||||
ERR_SVR_GROUP_GROUPID_IN_USED = 10021, ///< 群组 ID 已被使用,请选择其他的群组 ID。
|
||||
ERR_SVR_GROUP_SEND_MSG_FREQ_LIMIT = 10023, ///< 发消息的频率超限,请延长两次发消息时间的间隔。
|
||||
ERR_SVR_GROUP_REQ_ALLREADY_BEEN_PROCESSED = 10024, ///< 此邀请或者申请请求已经被处理。
|
||||
ERR_SVR_GROUP_GROUPID_IN_USED_FOR_SUPER = 10025, ///< 群组 ID 已被使用,并且操作者为群主,可以直接使用。
|
||||
ERR_SVR_GROUP_SDKAPPID_DENY = 10026, ///< 该 SDKAppID 请求的命令字已被禁用,请 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 联系客服。
|
||||
ERR_SVR_GROUP_REVOKE_MSG_NOT_FOUND = 10030, ///< 请求撤回的消息不存在。
|
||||
ERR_SVR_GROUP_REVOKE_MSG_TIME_LIMIT = 10031, ///< 消息撤回超过了时间限制(默认2分钟)。
|
||||
ERR_SVR_GROUP_REVOKE_MSG_DENY = 10032, ///< 请求撤回的消息不支持撤回操作。
|
||||
ERR_SVR_GROUP_NOT_ALLOW_REVOKE_MSG = 10033, ///< 群组类型不支持消息撤回操作。
|
||||
ERR_SVR_GROUP_REMOVE_MSG_DENY = 10034, ///< 该消息类型不支持删除操作。
|
||||
ERR_SVR_GROUP_NOT_ALLOW_REMOVE_MSG = 10035, ///< 音视频聊天室和在线成员广播大群不支持删除消息。
|
||||
ERR_SVR_GROUP_AVCHATROOM_COUNT_LIMIT = 10036, ///< 音视频聊天室创建数量超过了限制,请参考 [价格说明](https://cloud.tencent.com/document/product/269/11673) 购买预付费套餐“IM音视频聊天室”。
|
||||
ERR_SVR_GROUP_COUNT_LIMIT = 10037, ///< 单个用户可创建和加入的群组数量超过了限制,请参考 [价格说明](https://cloud.tencent.com/document/product/269/11673) 购买或升级预付费套餐“单人可创建与加入群组数”。
|
||||
ERR_SVR_GROUP_MEMBER_COUNT_LIMIT = 10038, ///< 群成员数量超过限制,请参考 [价格说明](https://cloud.tencent.com/document/product/269/11673) 购买或升级预付费套餐“扩展群人数上限”。
|
||||
ERR_SVR_GROUP_ATTRIBUTE_WRITE_CONFILCT = 10056, ///< 群属性写冲突,请先拉取最新的群属性后再尝试写操作,IMSDK 5.6 及其以上版本支持。
|
||||
ERR_SVR_COMMUNITY_GROUP_NOT_OPEN = 11000, ///< 社群功能未开通。
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// (三)IM SDK V3 版本的错误码
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
ERR_NO_SUCC_RESULT = 6003, ///< 批量操作无成功结果。
|
||||
ERR_TO_USER_INVALID = 6011, ///< 无效接收方。
|
||||
ERR_REQUEST_TIME_OUT = 6012, ///< 请求超时。
|
||||
ERR_INIT_CORE_FAIL = 6018, ///< INIT CORE 模块失败。
|
||||
ERR_EXPIRED_SESSION_NODE = 6020, ///< SessionNode 为 null 。
|
||||
ERR_LOGGED_OUT_BEFORE_LOGIN_FINISHED = 6023, ///< 在登录完成前进行了登出(在登录时返回)。
|
||||
ERR_TLSSDK_NOT_INITIALIZED = 6024, ///< TLS SDK 未初始化。
|
||||
ERR_TLSSDK_USER_NOT_FOUND = 6025, ///< TLS SDK 没有找到相应的用户信息。
|
||||
ERR_BIND_FAIL_UNKNOWN = 6100, ///< QALSDK 未知原因BIND失败。
|
||||
ERR_BIND_FAIL_NO_SSOTICKET = 6101, ///< 缺少 SSO 票据。
|
||||
ERR_BIND_FAIL_REPEATD_BIND = 6102, ///< 重复 BIND。
|
||||
ERR_BIND_FAIL_TINYID_NULL = 6103, ///< TinyId 为空。
|
||||
ERR_BIND_FAIL_GUID_NULL = 6104, ///< GUID 为空。
|
||||
ERR_BIND_FAIL_UNPACK_REGPACK_FAILED = 6105, ///< 解注册包失败。
|
||||
ERR_BIND_FAIL_REG_TIMEOUT = 6106, ///< 注册超时。
|
||||
ERR_BIND_FAIL_ISBINDING = 6107, ///< 正在 BIND 操作中。
|
||||
ERR_PACKET_FAIL_UNKNOWN = 6120, ///< 发包未知错误。
|
||||
ERR_PACKET_FAIL_REQ_NO_NET = 6121, ///< 发送请求包时没有网络。
|
||||
ERR_PACKET_FAIL_RESP_NO_NET = 6122, ///< 发送回复包时没有网络。
|
||||
ERR_PACKET_FAIL_REQ_NO_AUTH = 6123, ///< 发送请求包时没有权限。
|
||||
ERR_PACKET_FAIL_SSO_ERR = 6124, ///< SSO 错误。
|
||||
ERR_PACKET_FAIL_REQ_TIMEOUT = 6125, ///< 请求超时。
|
||||
ERR_PACKET_FAIL_RESP_TIMEOUT = 6126, ///< 回复超时。
|
||||
ERR_PACKET_FAIL_REQ_ON_RESEND = 6127, ///< 重发失败。
|
||||
ERR_PACKET_FAIL_RESP_NO_RESEND = 6128, ///< 重发时没有真正发送。
|
||||
ERR_PACKET_FAIL_FLOW_SAVE_FILTERED = 6129, ///< 保存被过滤。
|
||||
ERR_PACKET_FAIL_REQ_OVER_LOAD = 6130, ///< 发送过载。
|
||||
ERR_PACKET_FAIL_LOGIC_ERR = 6131, ///< 数据逻辑错误。
|
||||
ERR_FRIENDSHIP_PROXY_NOT_SYNCED = 6150, ///< proxy_manager 没有完成服务端数据同步。
|
||||
ERR_FRIENDSHIP_PROXY_SYNCING = 6151, ///< proxy_manager 正在进行服务端数据同步。
|
||||
ERR_FRIENDSHIP_PROXY_SYNCED_FAIL = 6152, ///< proxy_manager 同步失败。
|
||||
ERR_FRIENDSHIP_PROXY_LOCAL_CHECK_ERR = 6153, ///< proxy_manager 请求参数,在本地检查不合法。
|
||||
ERR_GROUP_INVALID_FIELD = 6160, ///< Group assistant 请求字段中包含非预设字段。
|
||||
ERR_GROUP_STORAGE_DISABLED = 6161, ///< Group assistant 群资料本地存储没有开启。
|
||||
ERR_LOADGRPINFO_FAILED = 6162, ///< 加载群资料失败。
|
||||
ERR_REQ_NO_NET_ON_REQ = 6200, ///< 请求的时候没有网络。
|
||||
ERR_REQ_NO_NET_ON_RSP = 6201, ///< 响应的时候没有网络。
|
||||
ERR_SERIVCE_NOT_READY = 6205, ///< QALSDK 服务未就绪。
|
||||
ERR_LOGIN_AUTH_FAILED = 6207, ///< 账号认证失败( TinyId 转换失败)。
|
||||
ERR_NEVER_CONNECT_AFTER_LAUNCH = 6209, ///< 在应用启动后没有尝试联网。
|
||||
ERR_REQ_FAILED = 6210, ///< QALSDK 执行失败。
|
||||
ERR_REQ_INVALID_REQ = 6211, ///< 请求非法,toMsgService 非法。
|
||||
ERR_REQ_OVERLOADED = 6212, ///< 请求队列满。
|
||||
ERR_REQ_KICK_OFF = 6213, ///< 已经被其他终端踢了。
|
||||
ERR_REQ_SERVICE_SUSPEND = 6214, ///< 服务被暂停。
|
||||
ERR_REQ_INVALID_SIGN = 6215, ///< SSO 签名错误。
|
||||
ERR_REQ_INVALID_COOKIE = 6216, ///< SSO cookie 无效。
|
||||
ERR_LOGIN_TLS_RSP_PARSE_FAILED = 6217, ///< 登录时 TLS SDK 回包校验,包体长度错误。
|
||||
ERR_LOGIN_OPENMSG_TIMEOUT = 6218, ///< 登录时 OPENSTATSVC 向 OPENMSG 上报状态超时。
|
||||
ERR_LOGIN_OPENMSG_RSP_PARSE_FAILED = 6219, ///< 登录时 OPENSTATSVC 向 OPENMSG 上报状态时解析回包失败。
|
||||
ERR_LOGIN_TLS_DECRYPT_FAILED = 6220, ///< 登录时 TLS SDK 解密失败。
|
||||
ERR_WIFI_NEED_AUTH = 6221, ///< WIFI 需要认证。
|
||||
ERR_USER_CANCELED = 6222, ///< 用户已取消。
|
||||
ERR_REVOKE_TIME_LIMIT_EXCEED = 6223, ///< 消息撤回超过了时间限制(默认2分钟)。
|
||||
ERR_LACK_UGC_EXT = 6224, ///< 缺少 UGC 扩展包。
|
||||
ERR_AUTOLOGIN_NEED_USERSIG = 6226, ///< 自动登录,本地票据过期,需要 UserSig 手动登录。
|
||||
ERR_QAL_NO_SHORT_CONN_AVAILABLE = 6300, ///< 没有可用的短连接 SSO 。
|
||||
ERR_REQ_CONTENT_ATTACK = 80101, ///< 消息内容安全打击。
|
||||
ERR_LOGIN_SIG_EXPIRE = 70101, ///< 登录返回,票据过期。
|
||||
ERR_SDK_HAD_INITIALIZED = 90101, ///< IM SDK 已经初始化无需重复初始化。
|
||||
ERR_OPENBDH_BASE = 115000, ///< OpenBDH 错误码基。
|
||||
ERR_REQUEST_NO_NET_ONREQ = 6250, ///< 请求时没有网络,请等网络恢复后重试。
|
||||
ERR_REQUEST_NO_NET_ONRSP = 6251, ///< 响应时没有网络,请等网络恢复后重试。
|
||||
ERR_REQUEST_FAILED = 6252, ///< QALSDK 执行失败。
|
||||
ERR_REQUEST_INVALID_REQ = 6253, ///< 请求非法,toMsgService 非法。
|
||||
ERR_REQUEST_OVERLOADED = 6254, ///< 请求队列満。
|
||||
ERR_REQUEST_KICK_OFF = 6255, ///< 已经被其他终端踢了。
|
||||
ERR_REQUEST_SERVICE_SUSPEND = 6256, ///< 服务被暂停。
|
||||
ERR_REQUEST_INVALID_SIGN = 6257, ///< SSO 签名错误。
|
||||
ERR_REQUEST_INVALID_COOKIE = 6258, ///< SSO cookie 无效。
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
112
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/Headers/V2TIMManager+APNS.h
generated
Executable file
112
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/Headers/V2TIMManager+APNS.h
generated
Executable file
@@ -0,0 +1,112 @@
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 腾讯云通信服务 IMSDK
|
||||
//
|
||||
// 模块名称:V2TIMManager+APNS
|
||||
//
|
||||
// 消息推送接口,里面包含了消息的推送的开启逻辑
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
|
||||
#import "V2TIMManager.h"
|
||||
@class V2TIMAPNSConfig;
|
||||
V2TIM_EXPORT @protocol V2TIMAPNSListener;
|
||||
|
||||
V2TIM_EXPORT @interface V2TIMManager (APNS)
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 设置 APNS 推送
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/**
|
||||
* 1.1 设置 APNS 监听
|
||||
*/
|
||||
- (void)setAPNSListener:(id<V2TIMAPNSListener>)apnsListener;
|
||||
|
||||
/**
|
||||
* 1.2 设置 APNS 推送
|
||||
*
|
||||
* config -> token:苹果后台对客户端的唯一标识,需要主动调用系统 API 获取,获取方法如下:
|
||||
*
|
||||
* <pre>
|
||||
* //获取 token 代码示例
|
||||
* if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {
|
||||
* [[UIApplication sharedApplication] registerUserNotificationSettings:
|
||||
* [UIUserNotificationSettings settingsForTypes:
|
||||
* (UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];
|
||||
* [[UIApplication sharedApplication] registerForRemoteNotifications];
|
||||
* }
|
||||
* else{
|
||||
* [[UIApplication sharedApplication] registerForRemoteNotificationTypes:
|
||||
* (UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert)];
|
||||
* }
|
||||
*
|
||||
* //收到 token 代码示例
|
||||
* -(void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
|
||||
* //回调的 deviceToken 就是需要的 token 信息
|
||||
* }
|
||||
* </pre>
|
||||
*
|
||||
* config -> busiId:推送证书 ID,上传推送证书(p.12)到 IM 控制台后生成。
|
||||
* 具体步骤请参考 [离线推送](https://cloud.tencent.com/document/product/269/9154)。
|
||||
*
|
||||
* @note
|
||||
* - 接口成功设置后会开启离线推送功能,如果您需要自定义推送的格式信息,请参考 V2TIMManager+Message.h 里面的 sendMessage 接口。
|
||||
* - 如果成功开启了离线推送,APP 进后台后,如果收到消息,会弹系统推送通知,APP 进前台后,如果收到消息,则不会弹系统推送通知。
|
||||
* - APP 进后台后 SDK 会默认设置应用角标为所有会话未读数之和,如果您需要自定义 APP 的未读数,请监听 V2TIMAPNSListener 回调设置。
|
||||
* - APP 在未初始化或未登录成功状态下 SDK 不会设置应用角标,这种情况下如需设置应用角标,请自行调用系统函数设置。
|
||||
* - 如果您想关闭离线推送,请把 config 设置为 nil。
|
||||
*/
|
||||
- (void)setAPNS:(V2TIMAPNSConfig*)config succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
@end
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// APNS 监听器
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
V2TIM_EXPORT @protocol V2TIMAPNSListener <NSObject>
|
||||
@optional
|
||||
/** 程序进后台后,自定义 APP 的未读数,如果不处理,APP 未读数默认为所有会话未读数之和
|
||||
* <pre>
|
||||
*
|
||||
* - (uint32_t)onSetAPPUnreadCount {
|
||||
* return 100; // 自定义未读数
|
||||
* }
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
- (uint32_t)onSetAPPUnreadCount;
|
||||
|
||||
@end
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// APNS 配置
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
V2TIM_EXPORT @interface V2TIMAPNSConfig : NSObject
|
||||
|
||||
/**
|
||||
* APNS token
|
||||
*/
|
||||
@property(nonatomic,strong) NSData *token;
|
||||
|
||||
/**
|
||||
* IM 控制台证书 ID,接入 TPNS 时不需要填写
|
||||
*/
|
||||
@property(nonatomic,assign) int businessID;
|
||||
|
||||
/**
|
||||
* 是否接入配置 TPNS, token 是否是从 TPNS 获取
|
||||
* @note 该字段已废弃
|
||||
* - 如果您之前通过 TPNS 接入离线推送,并且在 TPNS 控制台配置推送信息,可以继续按照该方式接入推送功能;
|
||||
* - 如果您从未接入 TPNS,从未在 TPNS 控制台配置推送信息,IM 将不在支持 TPNS 方式接入离线推送功能, 推荐参照如下方式接入:
|
||||
* https://cloud.tencent.com/document/product/269/74284
|
||||
*/
|
||||
@property(nonatomic,assign) BOOL isTPNSToken __attribute__((deprecated("not supported anymore, please use APNs")));
|
||||
|
||||
@end
|
||||
|
||||
478
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/Headers/V2TIMManager+Conversation.h
generated
Executable file
478
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/Headers/V2TIMManager+Conversation.h
generated
Executable file
@@ -0,0 +1,478 @@
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 腾讯云通信服务 IMSDK
|
||||
//
|
||||
// 模块名称:V2TIMManager+Conversation
|
||||
//
|
||||
// 会话接口,里面包含了会话的获取,删除,更新的逻辑
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
|
||||
#import "V2TIMManager.h"
|
||||
#import "V2TIMManager+Group.h"
|
||||
#import "V2TIMManager+Message.h"
|
||||
|
||||
V2TIM_EXPORT @protocol V2TIMConversationListener;
|
||||
@class V2TIMConversationListFilter;
|
||||
@class V2TIMConversationOperationResult;
|
||||
@class V2TIMConversation;
|
||||
@class V2TIMGroupAtInfo;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 消息会话相关接口
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
V2TIM_EXPORT @interface V2TIMManager (Conversation)
|
||||
|
||||
/// 获取会话列表成功的回调,nextSeq:下一次分页拉取的游标 isFinished:会话列表是否已经拉取完毕
|
||||
typedef void(^V2TIMConversationResultSucc)(NSArray<V2TIMConversation *>*list, uint64_t nextSeq, BOOL isFinished);
|
||||
/// 获取单个会话成功回调
|
||||
typedef void(^V2TIMConversationSucc)(V2TIMConversation *conv);
|
||||
/// 搜索会话列表成功回调
|
||||
typedef void(^V2TIMConversationListSucc)(NSArray<V2TIMConversation *>*list);
|
||||
/// 获取会话总未读数回调
|
||||
typedef void(^V2TIMTotalUnreadMessageCountSucc)(UInt64 totalUnreadCount);
|
||||
/// 获取会话分组列表成功回调
|
||||
typedef void (^V2TIMConversationGroupListSucc)(NSArray<NSString *> * groupList);
|
||||
/// 会话操作成功回调
|
||||
typedef void (^V2TIMConversationOperationResultSucc)(NSArray<V2TIMConversationOperationResult *> *result);
|
||||
|
||||
/// 会话类型
|
||||
typedef NS_ENUM(NSInteger, V2TIMConversationType) {
|
||||
V2TIM_UNKNOWN = 0, ///< 未知
|
||||
V2TIM_C2C = 1, ///< 单聊
|
||||
V2TIM_GROUP = 2, ///< 群聊
|
||||
};
|
||||
|
||||
/// @ 类型
|
||||
typedef NS_ENUM(NSInteger, V2TIMGroupAtType) {
|
||||
V2TIM_AT_ME = 1, ///< @ 我
|
||||
V2TIM_AT_ALL = 2, ///< @ 群里所有人
|
||||
V2TIM_AT_ALL_AT_ME = 3, ///< @ 群里所有人并且单独 @ 我
|
||||
};
|
||||
|
||||
/// 会话标记类型
|
||||
typedef NS_ENUM(NSUInteger, V2TIMConversationMarkType) {
|
||||
V2TIM_CONVERSATION_MARK_TYPE_STAR = 0x1, ///< 会话标星
|
||||
V2TIM_CONVERSATION_MARK_TYPE_UNREAD = 0x1 << 1, ///< 会话标记未读(重要会话)
|
||||
V2TIM_CONVERSATION_MARK_TYPE_FOLD = 0x1 << 2, ///< 会话折叠
|
||||
V2TIM_CONVERSATION_MARK_TYPE_HIDE = 0x1 << 3, ///< 会话隐藏
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 会话基础接口
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/**
|
||||
* 1.1 添加会话监听器
|
||||
*/
|
||||
- (void)addConversationListener:(id<V2TIMConversationListener>)listener NS_SWIFT_NAME(addConversationListener(listener:));
|
||||
|
||||
/**
|
||||
* 1.2 移除会话监听器
|
||||
*/
|
||||
- (void)removeConversationListener:(id<V2TIMConversationListener>)listener NS_SWIFT_NAME(removeConversationListener(listener:));
|
||||
|
||||
/**
|
||||
* 1.3 获取会话列表
|
||||
*
|
||||
* - 一个会话对应一个聊天窗口,比如跟一个好友的 1v1 聊天,或者一个聊天群,都是一个会话。
|
||||
* - 由于历史的会话数量可能很多,所以该接口希望您采用分页查询的方式进行调用,每次分页拉取的个数建议为 100 个。
|
||||
* - 该接口拉取的是本地缓存的会话,如果服务器会话有更新,SDK 内部会自动同步,然后在 @ref V2TIMConversationListener 回调告知客户。
|
||||
* - 如果会话全部拉取完毕,成功回调里面 V2TIMConversationResult 中的 isFinished 获取字段值为 YES。
|
||||
*
|
||||
* @note 会话排序规则
|
||||
* - 5.5.892 及以后版本, 该接口获取的会话列表默认已经按照会话 orderKey 做了排序,orderKey 值越大,代表该会话排序越靠前。
|
||||
* - 5.5.892 以前版本,该接口获取的会话列表默认已经按照会话 lastMessage -> timestamp 做了排序,timestamp 越大,会话越靠前。
|
||||
*
|
||||
* @param nextSeq 分页拉取的游标,第一次默认取传 0,后续分页拉传上一次分页拉取成功回调里的 nextSeq
|
||||
* @param count 分页拉取的个数,一次分页拉取不宜太多,会影响拉取的速度,建议每次拉取 100 个会话
|
||||
*/
|
||||
- (void)getConversationList:(uint64_t)nextSeq count:(int)count succ:(V2TIMConversationResultSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 1.4 获取单个会话
|
||||
*
|
||||
* @param conversationID 会话唯一 ID, C2C 单聊组成方式:[NSString stringWithFormat:@"c2c_%@",userID];群聊组成方式为 [NSString stringWithFormat:@"group_%@",groupID]
|
||||
*/
|
||||
- (void)getConversation:(NSString *)conversationID succ:(V2TIMConversationSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 1.5 获取指定会话列表
|
||||
*
|
||||
* @param conversationIDList 会话唯一 ID 列表,C2C 单聊组成方式:[NSString stringWithFormat:@"c2c_%@",userID];群聊组成方式为 [NSString stringWithFormat:@"group_%@",groupID]
|
||||
*/
|
||||
- (void)getConversationList:(NSArray<NSString *> *)conversationIDList succ:(V2TIMConversationListSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 1.6 获取会话列表高级接口(从 6.5 版本开始支持)
|
||||
*
|
||||
* @param filter 会话 filter
|
||||
* @param nextSeq 分页拉取的游标
|
||||
* @param count 分页拉取的个数
|
||||
*
|
||||
*/
|
||||
- (void)getConversationListByFilter:(V2TIMConversationListFilter *)filter nextSeq:(uint64_t)seq count:(uint32_t)count succ:(V2TIMConversationResultSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 1.7 删除会话以及该会话中的历史消息
|
||||
*
|
||||
* @param conversationID 会话唯一 ID,C2C 单聊组成方式:[NSString stringWithFormat:@"c2c_%@",userID];群聊组成方式为 [NSString stringWithFormat:@"group_%@",groupID]
|
||||
*
|
||||
* @note 请注意:
|
||||
* - 该会话以及会话中的历史消息,会被 SDK 从本地和服务端一同删除掉,并且不可恢复。
|
||||
*/
|
||||
- (void)deleteConversation:(NSString *)conversationID succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 1.8 删除会话列表(7.1 及以上版本支持)
|
||||
*
|
||||
* @param conversationIDList 会话唯一 ID 列表,C2C 单聊组成方式:[NSString stringWithFormat:@"c2c_%@",userID];群聊组成方式为 [NSString stringWithFormat:@"group_%@",groupID]
|
||||
* @param clearMessage 是否删除会话中的消息;设置为 NO 时,保留会话消息;设置为 YES 时,本地和服务器的消息会一起删除,并且不可恢复
|
||||
*
|
||||
* @note 请注意: 每次最多支持删除 100 个会话
|
||||
*/
|
||||
- (void)deleteConversationList:(NSArray<NSString *> *)conversationIDList
|
||||
clearMessage:(BOOL)clearMessage
|
||||
succ:(V2TIMConversationOperationResultSucc)succ
|
||||
fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 1.9 设置会话草稿
|
||||
*
|
||||
* @param conversationID 会话唯一 ID,C2C 单聊组成方式:[NSString stringWithFormat:@"c2c_%@",userID];群聊组成方式为 [NSString stringWithFormat:@"group_%@",groupID]
|
||||
*
|
||||
* 只在本地保存,不会存储 Server,不能多端同步,程序卸载重装会失效。
|
||||
*/
|
||||
- (void)setConversationDraft:(NSString *)conversationID draftText:(NSString *)draftText succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 1.10 设置会话自定义数据(从 6.5 版本开始支持)
|
||||
*
|
||||
* @param customData 自定义数据,最大支持 256 bytes
|
||||
*/
|
||||
- (void)setConversationCustomData:(NSArray<NSString *> *)conversationIDList customData:(NSData *)customData succ:(V2TIMConversationOperationResultSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 1.11 设置会话置顶(5.3.425 及以上版本支持)
|
||||
*
|
||||
* @param conversationID 会话唯一 ID,C2C 单聊组成方式:[NSString stringWithFormat:@"c2c_%@",userID];群聊组成方式为 [NSString stringWithFormat:@"group_%@",groupID]
|
||||
* @param isPinned 是否置顶
|
||||
*/
|
||||
- (void)pinConversation:(NSString *)conversationID isPinned:(BOOL)isPinned succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 1.12 标记会话(从 6.5 版本开始支持,需要您购买旗舰版套餐)
|
||||
*
|
||||
* @param conversationIDList 会话列表
|
||||
* @param markType 会话标记类型,取值详见 @V2TIMConversationMarkType。
|
||||
* @param enableMark YES:设置标记 NO:取消标记
|
||||
*
|
||||
* 如果已有标记不能满足您的需求,您可以自定义扩展标记,扩展标记需要满足以下两个条件:
|
||||
* 1、扩展标记值不能和 V2TIMConversationMarkType 已有的标记值冲突
|
||||
* 2、扩展标记值必须是 0x1LL << n 的位移值(32 <= n < 64,即 n 必须大于等于 32 并且小于 64),比如扩展标记值 0x1LL << 32 表示 "iPhone 在线"
|
||||
*
|
||||
* @note: 扩展标记值不能设置为 0x1 << 32,要设置为 0x1LL << 32,明确告诉编译器是 64 位的整型常量。
|
||||
*
|
||||
*/
|
||||
- (void)markConversation:(NSArray<NSString *> *)conversationIDList markType:(NSNumber *)markType enableMark:(BOOL)enableMark succ:(V2TIMConversationOperationResultSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 1.13 获取所有会话的未读消息总数(5.3.425 及以上版本支持)
|
||||
* @note
|
||||
* - 调用该接口以后,任意会话的未读数发生变化时,SDK 都会给您抛 onTotalUnreadMessageCountChanged 回调。
|
||||
* - 未读总数会减去设置为免打扰的会话的未读数,即消息接收选项设置为 V2TIMMessage.V2TIM_NOT_RECEIVE_MESSAGE 或 V2TIMMessage.V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE 的会话。
|
||||
*/
|
||||
- (void)getTotalUnreadMessageCount:(V2TIMTotalUnreadMessageCountSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 1.14 获取根据 filter 过滤的会话未读总数(7.0 及以上版本支持)
|
||||
*
|
||||
* @param filter 会话 filter
|
||||
*
|
||||
* @note
|
||||
* - 未读总数会减去设置为免打扰的会话的未读数,即消息接收选项设置为 V2TIMMessage.V2TIM_NOT_RECEIVE_MESSAGE 或 V2TIMMessage.V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE 的会话。
|
||||
*/
|
||||
- (void)getUnreadMessageCountByFilter:(V2TIMConversationListFilter *)filter succ:(V2TIMTotalUnreadMessageCountSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 1.15 注册监听指定 filter 的会话未读总数变化(7.0 及以上版本支持)
|
||||
*
|
||||
* @param filter 会话 filter
|
||||
*
|
||||
* @note
|
||||
* - 当您调用这个接口以后,该 filter 下的未读数发生变化时,SDK 会给您抛 onUnreadMessageCountChangedByFilter 回调。
|
||||
*/
|
||||
- (void)subscribeUnreadMessageCountByFilter:(V2TIMConversationListFilter *)filter;
|
||||
|
||||
/**
|
||||
* 1.16 取消监听指定 filter 的会话未读总数变化(7.0 及以上版本支持)
|
||||
*
|
||||
* @param filter 会话 filter
|
||||
*
|
||||
*/
|
||||
- (void)unsubscribeUnreadMessageCountByFilter:(V2TIMConversationListFilter *)filter;
|
||||
|
||||
/**
|
||||
* 1.17 清理会话的未读消息计数(7.1 及以上版本支持)
|
||||
*
|
||||
* @param conversationID 会话唯一 ID, C2C 单聊组成方式:[NSString stringWithFormat:@"c2c_%@",userID];群聊组成方式为 [NSString stringWithFormat:@"group_%@",groupID]
|
||||
* @param cleanTimestamp 清理时间戳,仅对单聊会话生效,指定清理哪一个 timestamp 之前的未读消息计数;当传入为 0 时,对应会话所有的未读消息将被清理,会话的未读数会清 0
|
||||
* @param cleanSequence 清理 sequence,仅对群聊会话生效,指定清理哪一个 sequence 之前的未读消息计数;当传入为 0 时,对应会话所有的未读消息将被清理,会话的未读数会清 0
|
||||
*
|
||||
* @note
|
||||
* - 当您想清理所有单聊会话的未读消息计数,conversationID 请传入 @"c2c",即不指定具体的 userID;
|
||||
* - 当您想清理所有群聊会话的未读消息计数,conversationID 请传入 @"group",即不指定具体的 groupID;
|
||||
* - 当您想清理所有会话的未读消息计数,conversationID 请传入 @“” 或者 nil;
|
||||
* - 该接口调用成功后,SDK 会通过 onConversationChanged 回调将对应会话的最新未读数通知给您。
|
||||
*/
|
||||
- (void)cleanConversationUnreadMessageCount:(NSString *)conversationID cleanTimestamp:(uint64_t)cleanTimestamp cleanSequence:(uint64_t)cleanSequence succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 1.18 设置会话监听器(待废弃接口,请使用 addConversationListener 和 removeConversationListener 接口)
|
||||
*/
|
||||
- (void)setConversationListener:(id<V2TIMConversationListener>)listener __attribute__((deprecated("use addConversationListener: instead")));
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 会话分组相关接口 (从 6.5 版本开始支持,需要您购买旗舰版套餐)
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/**
|
||||
* 2.1 创建会话分组
|
||||
*
|
||||
* @param groupName 分组名(必填参数,长度要 > 0,最大支持 32 bytes)
|
||||
* @param conversationIDList 会话 ID 列表(必填参数,不能为空)
|
||||
*
|
||||
* @note 会话分组最大支持 20 个,不再使用的分组请及时删除。
|
||||
*/
|
||||
- (void)createConversationGroup:(NSString *)groupName conversationIDList:(NSArray<NSString *> *)conversationIDList succ:(V2TIMConversationOperationResultSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 2.2 获取会话分组列表
|
||||
*/
|
||||
- (void)getConversationGroupList:(V2TIMConversationGroupListSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 2.3 删除会话分组
|
||||
*/
|
||||
- (void)deleteConversationGroup:(NSString *)groupName succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 2.4 重命名会话分组
|
||||
*/
|
||||
- (void)renameConversationGroup:(NSString*)oldName newName:(NSString*)newName succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 2.5 添加会话到一个会话分组
|
||||
*/
|
||||
- (void)addConversationsToGroup:(NSString *)groupName conversationIDList:(NSArray<NSString *> *)conversationIDList succ:(V2TIMConversationOperationResultSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 2.6 从一个会话分组中删除会话
|
||||
*/
|
||||
- (void)deleteConversationsFromGroup:(NSString *)groupName conversationIDList:(NSArray<NSString *> *)conversationIDList succ:(V2TIMConversationOperationResultSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
@end
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 会话变更监听器
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
V2TIM_EXPORT @protocol V2TIMConversationListener <NSObject>
|
||||
@optional
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// 会话基础通知
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/**
|
||||
* 同步服务器会话开始,SDK 会在登录成功或者断网重连后自动同步服务器会话,您可以监听这个事件做一些 UI 进度展示操作。
|
||||
*/
|
||||
- (void)onSyncServerStart;
|
||||
|
||||
/**
|
||||
* 同步服务器会话完成,如果会话有变更,会通过 onNewConversation | onConversationChanged 回调告知客户
|
||||
*/
|
||||
- (void)onSyncServerFinish;
|
||||
|
||||
/**
|
||||
* 同步服务器会话失败
|
||||
*/
|
||||
- (void)onSyncServerFailed;
|
||||
|
||||
/**
|
||||
* 有新的会话(比如收到一个新同事发来的单聊消息、或者被拉入了一个新的群组中),可以根据会话的 lastMessage -> timestamp 重新对会话列表做排序。
|
||||
*/
|
||||
- (void)onNewConversation:(NSArray<V2TIMConversation*> *) conversationList;
|
||||
|
||||
/**
|
||||
* 某些会话的关键信息发生变化(未读计数发生变化、最后一条消息被更新等等),可以根据会话的 lastMessage -> timestamp 重新对会话列表做排序。
|
||||
*/
|
||||
- (void)onConversationChanged:(NSArray<V2TIMConversation*> *) conversationList;
|
||||
|
||||
/**
|
||||
* 全部会话未读总数变更的通知(5.3.425 及以上版本支持)
|
||||
* @note
|
||||
* - 当您调用 getTotalUnreadMessageCount 获取全部会话未读总数以后,任意会话的未读数发生变化时,SDK 都会通过该回调把最新的未读总数通知给您。
|
||||
* - 未读总数会减去设置为免打扰的会话的未读数,即消息接收选项设置为 V2TIMMessage.V2TIM_NOT_RECEIVE_MESSAGE 或 V2TIMMessage.V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE 的会话。
|
||||
*/
|
||||
- (void)onTotalUnreadMessageCountChanged:(UInt64) totalUnreadCount;
|
||||
|
||||
/**
|
||||
* 根据 filter 过滤的未读消息总数变更通知(7.0 及以上版本支持)
|
||||
* @note
|
||||
* - 您可以调用 subscribeUnreadMessageCountByFilter 注册监听指定 filter 下的未读总数变化,SDK 通过这个回调把最新的未读总数通知给您。
|
||||
* - 您可以注册监听多个不同 filter 下的未读总数变化,这个回调的 filter 参数就是注册监听时指定的 filter,该 filter 携带了 conversationType、conversationGroup 和 markType 三个字段,通过判断这三字段是不是都相同,来区分出不同的 filter。
|
||||
* - 未读总数会减去设置为免打扰的会话的未读数,即消息接收选项设置为 V2TIMMessage.V2TIM_NOT_RECEIVE_MESSAGE 或 V2TIMMessage.V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE 的会话。
|
||||
*/
|
||||
- (void)onUnreadMessageCountChangedByFilter:(V2TIMConversationListFilter *)filter totalUnreadCount:(UInt64)totalUnreadCount;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// 会话分组相关通知(从 6.5 版本开始支持)
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/**
|
||||
* 会话分组被创建
|
||||
*/
|
||||
- (void)onConversationGroupCreated:(NSString *)groupName conversationList:(NSArray<V2TIMConversation *> *)conversationList;
|
||||
|
||||
/**
|
||||
* 会话分组被删除
|
||||
*/
|
||||
- (void)onConversationGroupDeleted:(NSString *)groupName;
|
||||
|
||||
/**
|
||||
* 会话分组名变更
|
||||
*/
|
||||
- (void)onConversationGroupNameChanged:(NSString *)oldName newName:(NSString *)newName;
|
||||
|
||||
/**
|
||||
* 会话分组新增会话
|
||||
*/
|
||||
- (void)onConversationsAddedToGroup:(NSString *)groupName conversationList:(NSArray<V2TIMConversation *> *)conversationList;
|
||||
|
||||
/**
|
||||
* 会话分组删除会话
|
||||
*/
|
||||
- (void)onConversationsDeletedFromGroup:(NSString *)groupName conversationList:(NSArray<V2TIMConversation *> *)conversationList;
|
||||
@end
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 会话对象 V2TIMConversation
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/// 会话对象
|
||||
V2TIM_EXPORT @interface V2TIMConversation : NSObject
|
||||
|
||||
/// 会话类型
|
||||
@property(nonatomic,assign,readonly) V2TIMConversationType type;
|
||||
|
||||
/// 会话唯一 ID,如果是 C2C 单聊,组成方式为 c2c_userID,如果是群聊,组成方式为 group_groupID
|
||||
@property(nonatomic,strong,readonly) NSString *conversationID;
|
||||
|
||||
/// 如果会话类型为 C2C 单聊,userID 会存储对方的用户ID,否则为 nil
|
||||
@property(nonatomic,strong,readonly) NSString *userID;
|
||||
|
||||
/// 如果会话类型为群聊,groupID 会存储当前群的群 ID,否则为 nil
|
||||
@property(nonatomic,strong,readonly) NSString *groupID;
|
||||
|
||||
/// 如果会话类型为群聊,groupType 为当前群类型,否则为 nil
|
||||
@property(nonatomic,strong,readonly) NSString *groupType;
|
||||
|
||||
/// 会话展示名称(群组:群名称 >> 群 ID;C2C:对方好友备注 >> 对方昵称 >> 对方的 userID)
|
||||
@property(nonatomic,strong,readonly) NSString *showName;
|
||||
|
||||
/// 会话展示头像(群组:群头像;C2C:对方头像)
|
||||
@property(nonatomic,strong,readonly) NSString *faceUrl;
|
||||
|
||||
/// 会话未读消息数量,直播群(AVChatRoom)不支持未读计数,默认为 0
|
||||
@property(nonatomic,assign,readonly) int unreadCount;
|
||||
|
||||
/// 消息接收选项(接收 | 接收但不提醒 | 不接收)
|
||||
@property(nonatomic,assign,readonly) V2TIMReceiveMessageOpt recvOpt;
|
||||
|
||||
/**
|
||||
* 会话最后一条消息
|
||||
* @note 5.5.892 以前版本,请您使用 lastMessage -> timestamp 对会话做排序,timestamp 越大,会话越靠前
|
||||
*/
|
||||
@property(nonatomic,strong,readonly) V2TIMMessage *lastMessage;
|
||||
|
||||
/// 群会话 @ 信息列表,用于展示 “有人@我” 或 “@所有人” 这两种提醒状态
|
||||
@property(nonatomic,strong,readonly) NSArray<V2TIMGroupAtInfo *> *groupAtInfolist;
|
||||
|
||||
/// 草稿信息,设置草稿信息请调用 setConversationDraft() 接口
|
||||
@property(nonatomic,strong,readonly) NSString *draftText;
|
||||
|
||||
/// 草稿编辑时间,草稿设置的时候自动生成
|
||||
@property(nonatomic,strong,readonly) NSDate *draftTimestamp;
|
||||
|
||||
/// 是否置顶
|
||||
@property(nonatomic,assign,readonly) BOOL isPinned;
|
||||
|
||||
/**
|
||||
* 排序字段(5.5.892 及以后版本支持)
|
||||
* @note
|
||||
* - 排序字段 orderKey 是按照会话的激活时间线性递增的一个数字(注意:不是时间戳,因为同一时刻可能会有多个会话被同时激活)
|
||||
* - 5.5.892 及其以后版本,推荐您使用该字段对所有会话进行排序,orderKey 值越大,代表该会话排序越靠前
|
||||
* - 当您 “清空会话所有消息” 或者 “逐个删除会话的所有消息” 之后,会话的 lastMessage 变为空,但会话的 orderKey 不会改变;如果想保持会话的排序位置不变,可以使用该字段对所有会话进行排序
|
||||
*/
|
||||
@property(nonatomic,assign,readonly) NSUInteger orderKey;
|
||||
|
||||
/// 会话标记列表,取值详见 @V2TIMConversationMarkType(从 6.5 版本开始支持)
|
||||
@property(nonatomic,strong,readonly) NSArray<NSNumber *> * markList;
|
||||
|
||||
/// 会话自定义数据(从 6.5 版本开始支持)
|
||||
@property(nonatomic,strong,readonly) NSData *customData;
|
||||
|
||||
/// 会话所属分组列表(从 6.5 版本开始支持)
|
||||
@property(nonatomic,strong,readonly) NSArray<NSString *> *conversationGroupList;
|
||||
|
||||
/// 已读消息的时间戳,仅对单聊会话生效(从 7.1 版本开始支持)
|
||||
@property(nonatomic,assign,readonly) NSUInteger c2cReadTimestamp;
|
||||
|
||||
/// 已读消息的 sequence,仅对群聊会话生效(从 7.1 版本开始支持)
|
||||
@property(nonatomic,assign,readonly) NSUInteger groupReadSequence;
|
||||
|
||||
@end
|
||||
|
||||
/// 会话 filter
|
||||
V2TIM_EXPORT @interface V2TIMConversationListFilter : NSObject
|
||||
|
||||
/// C2C 或群会话(填 0 代表不过滤此项)
|
||||
@property(nonatomic,assign) V2TIMConversationType type;
|
||||
|
||||
/// 会话分组名称(填 nil 代表不过滤此项)
|
||||
@property(nonatomic,strong) NSString *conversationGroup;
|
||||
|
||||
/// 标记类型,取值详见 @V2TIMConversationMarkType (填 0 代表不过滤此项)
|
||||
@property(nonatomic,assign) NSUInteger markType;
|
||||
@end
|
||||
|
||||
/// @ 信息
|
||||
V2TIM_EXPORT @interface V2TIMGroupAtInfo : NSObject
|
||||
/// @ 消息序列号,即带有 “@我” 或者 “@所有人” 标记的消息的序列号
|
||||
@property(nonatomic,assign,readonly) uint64_t seq;
|
||||
|
||||
/// @ 提醒类型,分成 “@我” 、“@所有人” 以及 “@我并@所有人” 三类
|
||||
@property(nonatomic,assign,readonly) V2TIMGroupAtType atType;
|
||||
|
||||
@end
|
||||
|
||||
/// 会话操作结果
|
||||
V2TIM_EXPORT @interface V2TIMConversationOperationResult : NSObject
|
||||
|
||||
/// 会话 ID
|
||||
@property(nonatomic,strong) NSString* conversationID;
|
||||
|
||||
/// 返回码
|
||||
@property(nonatomic,assign) NSInteger resultCode;
|
||||
|
||||
/// 返回信息
|
||||
@property(nonatomic,strong) NSString *resultInfo;
|
||||
|
||||
@end
|
||||
522
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/Headers/V2TIMManager+Friendship.h
generated
Executable file
522
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/Headers/V2TIMManager+Friendship.h
generated
Executable file
@@ -0,0 +1,522 @@
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 腾讯云通信服务 IMSDK
|
||||
//
|
||||
// 模块名称:V2TIMManager+Friendship
|
||||
//
|
||||
// 关系链接口,里面包含了好友的添加、删除,黑名单的添加、删除等逻辑
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
#import "V2TIMManager.h"
|
||||
|
||||
V2TIM_EXPORT @protocol V2TIMFriendshipListener;
|
||||
@class V2TIMFriendOperationResult;
|
||||
@class V2TIMFriendInfoResult;
|
||||
@class V2TIMFriendInfo;
|
||||
@class V2TIMFriendCheckResult;
|
||||
@class V2TIMFriendApplicationResult;
|
||||
@class V2TIMFriendAddApplication;
|
||||
@class V2TIMFriendApplication;
|
||||
@class V2TIMFriendGroup;
|
||||
@class V2TIMFriendSearchParam;
|
||||
|
||||
V2TIM_EXPORT @interface V2TIMManager (Friendship)
|
||||
|
||||
/// 获取好友列表成功回调
|
||||
typedef void (^V2TIMFriendInfoListSucc)(NSArray<V2TIMFriendInfo *> *infoList);
|
||||
/// 获取指定好友信息成功回调
|
||||
typedef void (^V2TIMFriendInfoResultListSucc)(NSArray<V2TIMFriendInfoResult *> *resultList);
|
||||
/// 好友操作成功回调
|
||||
typedef void (^V2TIMFriendOperationResultSucc)(V2TIMFriendOperationResult *result);
|
||||
/// 好友列表操作成功回调
|
||||
typedef void (^V2TIMFriendOperationResultListSucc)(NSArray<V2TIMFriendOperationResult *> *resultList);
|
||||
/// 好友检查成功回调
|
||||
typedef void (^V2TIMFriendCheckResultListSucc)(NSArray<V2TIMFriendCheckResult *> *resultList);
|
||||
/// 获取群分组列表成功回调
|
||||
typedef void (^V2TIMFriendGroupListSucc)(NSArray<V2TIMFriendGroup *> * groups);
|
||||
/// 获取好友申请列表成功回调
|
||||
typedef void (^V2TIMFriendApplicationResultSucc)(V2TIMFriendApplicationResult *result);
|
||||
|
||||
/// 好友申请类型
|
||||
typedef NS_ENUM(NSInteger, V2TIMFriendApplicationType) {
|
||||
V2TIM_FRIEND_APPLICATION_COME_IN = 1, ///< 别人发给我的
|
||||
V2TIM_FRIEND_APPLICATION_SEND_OUT = 2, ///< 我发给别人的
|
||||
V2TIM_FRIEND_APPLICATION_BOTH = 3, ///< 别人发给我的 和 我发给别人的。仅拉取时有效
|
||||
};
|
||||
|
||||
/// 好友类型
|
||||
typedef NS_ENUM(NSInteger, V2TIMFriendType) {
|
||||
V2TIM_FRIEND_TYPE_SINGLE = 1, ///< 单向好友
|
||||
V2TIM_FRIEND_TYPE_BOTH = 2, ///< 双向好友
|
||||
};
|
||||
|
||||
/// 好友关系类型
|
||||
typedef NS_ENUM(NSInteger, V2TIMFriendRelationType) {
|
||||
V2TIM_FRIEND_RELATION_TYPE_NONE = 0x0, ///< 不是好友
|
||||
V2TIM_FRIEND_RELATION_TYPE_IN_MY_FRIEND_LIST = 0x1, ///< 对方在我的好友列表中
|
||||
V2TIM_FRIEND_RELATION_TYPE_IN_OTHER_FRIEND_LIST = 0x2, ///< 我在对方的好友列表中
|
||||
V2TIM_FRIEND_RELATION_TYPE_BOTH_WAY = 0x3, ///< 互为好友
|
||||
};
|
||||
|
||||
/// 好友申请接受类型
|
||||
typedef NS_ENUM(NSInteger, V2TIMFriendAcceptType) {
|
||||
V2TIM_FRIEND_ACCEPT_AGREE = 0, ///< 接受加好友(建立单向好友)
|
||||
V2TIM_FRIEND_ACCEPT_AGREE_AND_ADD = 1, ///< 接受加好友并加对方为好友(建立双向好友)
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 关系链和用户资料监听器
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 1.1 添加关系链监听器
|
||||
*/
|
||||
- (void)addFriendListener:(id<V2TIMFriendshipListener>)listener NS_SWIFT_NAME(addFriendListener(listener:));
|
||||
|
||||
/**
|
||||
* 1.2 移除关系链监听器
|
||||
*/
|
||||
- (void)removeFriendListener:(id<V2TIMFriendshipListener>)listener NS_SWIFT_NAME(removeFriendListener(listener:));
|
||||
|
||||
/**
|
||||
* 设置关系链监听器(待废弃接口,请使用 addFriendListener 和 removeFriendListener 接口)
|
||||
*/
|
||||
- (void)setFriendListener:(id<V2TIMFriendshipListener>)listener __attribute__((deprecated("use addFriendListener: instead")));
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 好友添加、删除、列表获取、资料设置相关接口
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 2.1 获取好友列表
|
||||
*/
|
||||
- (void)getFriendList:(V2TIMFriendInfoListSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 2.2 获取指定好友资料
|
||||
* @param userIDList 好友 userID 列表
|
||||
* - ID 建议一次最大 100 个,因为数量过多可能会导致数据包太大被后台拒绝,后台限制数据包最大为 1M。
|
||||
*/
|
||||
- (void)getFriendsInfo:(NSArray<NSString *> *)userIDList succ:(V2TIMFriendInfoResultListSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 2.3 设置指定好友资料
|
||||
*/
|
||||
- (void)setFriendInfo:(V2TIMFriendInfo *)info succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
|
||||
/**
|
||||
* 2.4 搜索好友(5.4.666 及以上版本支持)
|
||||
* @note
|
||||
* - 接口返回本地存储的用户资料,可以根据 V2TIMFriendInfoResult 中的 getRelation 来判断是否为好友。
|
||||
* - 该功能为 IM 旗舰版功能,[购买旗舰版套餐包](https://buy.cloud.tencent.com/avc?from=17474)后可使用,详见[价格说明](https://cloud.tencent.com/document/product/269/11673?from=17176#.E5.9F.BA.E7.A1.80.E6.9C.8D.E5.8A.A1.E8.AF.A6.E6.83.85)
|
||||
*/
|
||||
- (void)searchFriends:(V2TIMFriendSearchParam *)searchParam succ:(V2TIMFriendInfoResultListSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 2.5 添加好友
|
||||
*/
|
||||
- (void)addFriend:(V2TIMFriendAddApplication *)application succ:(V2TIMFriendOperationResultSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 2.6 删除好友
|
||||
* @param userIDList 要删除的好友 userID 列表
|
||||
* - ID 建议一次最大 100 个,因为数量过多可能会导致数据包太大被后台拒绝,后台限制数据包最大为 1M。
|
||||
* @param deleteType 删除类型(单向好友、双向好友)
|
||||
*/
|
||||
- (void)deleteFromFriendList:(NSArray *)userIDList deleteType:(V2TIMFriendType)deleteType succ:(V2TIMFriendOperationResultListSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 2.7 检查指定用户的好友关系
|
||||
* @param userIDList 要检查的 userID 列表
|
||||
* @param checkType 检查类型 (单向好友检查、双向好友检查)
|
||||
* @param succ 成功后的回调
|
||||
* @param fail 失败后的回调
|
||||
*
|
||||
* @note checkType 的使用需要注意:
|
||||
* - checkType 如果传入 V2TIM_FRIEND_TYPE_SINGLE,结果返回:V2TIM_FRIEND_RELATION_TYPE_NONE、V2TIM_FRIEND_RELATION_TYPE_IN_MY_FRIEND_LIST 两种情况
|
||||
* - checkType 如果传入 V2TIM_FRIEND_TYPE_BOTH,结果返回:V2TIM_FRIEND_RELATION_TYPE_NONE、V2TIM_FRIEND_RELATION_TYPE_IN_MY_FRIEND_LIST、
|
||||
* V2TIM_FRIEND_RELATION_TYPE_IN_OTHER_FRIEND_LIST、V2TIM_FRIEND_RELATION_TYPE_BOTH_WAY 四种情况
|
||||
*/
|
||||
- (void)checkFriend:(NSArray<NSString *> *)userIDList checkType:(V2TIMFriendType)checkType succ:(V2TIMFriendCheckResultListSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 好友申请、删除相关逻辑
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 3.1 获取好友申请列表
|
||||
*
|
||||
* @note
|
||||
* - 好友申请列表包括发起的好友申请和收到的好友申请。
|
||||
* - 最多支持100个。
|
||||
*/
|
||||
- (void)getFriendApplicationList:(V2TIMFriendApplicationResultSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 3.2 同意好友申请
|
||||
*
|
||||
* @param application 好友申请信息,getFriendApplicationList 成功后会返回
|
||||
* @param acceptType 建立单向/双向好友关系
|
||||
*/
|
||||
- (void)acceptFriendApplication:(V2TIMFriendApplication *)application type:(V2TIMFriendAcceptType)acceptType succ:(V2TIMFriendOperationResultSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 3.3 拒绝好友申请
|
||||
*
|
||||
* @param application 好友申请信息,getFriendApplicationList 成功后会返回
|
||||
*/
|
||||
- (void)refuseFriendApplication:(V2TIMFriendApplication *)application succ:(V2TIMFriendOperationResultSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 3.4 删除好友申请
|
||||
*
|
||||
* @param application 好友申请信息,getFriendApplicationList 成功后会返回
|
||||
*/
|
||||
- (void)deleteFriendApplication:(V2TIMFriendApplication *)application succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 3.5 设置好友申请已读
|
||||
*/
|
||||
- (void)setFriendApplicationRead:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 黑名单
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 4.1 添加用户到黑名单
|
||||
*/
|
||||
- (void)addToBlackList:(NSArray *)userIDList succ:(V2TIMFriendOperationResultListSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 4.2 把用户从黑名单中删除
|
||||
*/
|
||||
- (void)deleteFromBlackList:(NSArray *)userIDList succ:(V2TIMFriendOperationResultListSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 4.3 获取黑名单列表
|
||||
*/
|
||||
- (void)getBlackList:(V2TIMFriendInfoListSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 好友分组
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 5.1 新建好友分组
|
||||
*
|
||||
* @param groupName 分组名称
|
||||
* @param userIDList 要添加到分组中的好友
|
||||
*/
|
||||
- (void)createFriendGroup:(NSString *)groupName userIDList:(NSArray *)userIDList succ:(V2TIMFriendOperationResultListSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 5.2 获取分组信息
|
||||
*
|
||||
* @param groupNameList 要获取信息的好友分组名称列表,传入 nil 获得所有分组信息
|
||||
*/
|
||||
- (void)getFriendGroupList:(NSArray *)groupNameList succ:(V2TIMFriendGroupListSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 5.3 删除好友分组
|
||||
*/
|
||||
- (void)deleteFriendGroup:(NSArray *)groupNameList succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 5.4 修改好友分组的名称
|
||||
*/
|
||||
- (void)renameFriendGroup:(NSString*)oldName newName:(NSString*)newName succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 5.5 添加好友到一个好友分组
|
||||
*/
|
||||
- (void)addFriendsToFriendGroup:(NSString *)groupName userIDList:(NSArray *)userIDList succ:(V2TIMFriendOperationResultListSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 5.6 从好友分组中删除好友
|
||||
*/
|
||||
- (void)deleteFriendsFromFriendGroup:(NSString *)groupName userIDList:(NSArray *)userIDList succ:(V2TIMFriendOperationResultListSucc)succ fail:(V2TIMFail)fail;
|
||||
@end
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 资料关系链回调
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/// 资料关系链回调
|
||||
V2TIM_EXPORT @protocol V2TIMFriendshipListener <NSObject>
|
||||
@optional
|
||||
/**
|
||||
* 好友申请新增通知,两种情况会收到这个回调:
|
||||
* 1. 自己申请加别人好友
|
||||
* 2. 别人申请加自己好友
|
||||
*/
|
||||
- (void)onFriendApplicationListAdded:(NSArray<V2TIMFriendApplication *> *)applicationList;
|
||||
|
||||
/**
|
||||
* 好友申请删除通知,四种情况会收到这个回调:
|
||||
* 1. 调用 deleteFriendApplication 主动删除好友申请
|
||||
* 2. 调用 refuseFriendApplication 拒绝好友申请
|
||||
* 3. 调用 acceptFriendApplication 同意好友申请
|
||||
* 4. 申请加别人好友被拒绝
|
||||
*/
|
||||
- (void)onFriendApplicationListDeleted:(NSArray *)userIDList;
|
||||
|
||||
/**
|
||||
* 好友申请已读通知,如果调用 setFriendApplicationRead 设置好友申请列表已读,会收到这个回调(主要用于多端同步)
|
||||
*/
|
||||
- (void)onFriendApplicationListRead;
|
||||
|
||||
/**
|
||||
* 好友新增通知
|
||||
*/
|
||||
- (void)onFriendListAdded:(NSArray<V2TIMFriendInfo *>*)infoList;
|
||||
|
||||
/**
|
||||
* 好友删除通知,两种情况会收到这个回调:
|
||||
* 1. 自己删除好友(单向和双向删除都会收到回调)
|
||||
* 2. 好友把自己删除(双向删除会收到)
|
||||
*/
|
||||
- (void)onFriendListDeleted:(NSArray*)userIDList;
|
||||
|
||||
/**
|
||||
* 黑名单新增通知
|
||||
*/
|
||||
- (void)onBlackListAdded:(NSArray<V2TIMFriendInfo *>*)infoList;
|
||||
|
||||
/**
|
||||
* 黑名单删除通知
|
||||
*/
|
||||
- (void)onBlackListDeleted:(NSArray*)userIDList;
|
||||
|
||||
/**
|
||||
* 好友资料变更通知
|
||||
*/
|
||||
- (void)onFriendProfileChanged:(NSArray<V2TIMFriendInfo *> *)infoList;
|
||||
|
||||
@end
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 好友资料获取结果
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/// 好友资料获取结果
|
||||
V2TIM_EXPORT @interface V2TIMFriendInfoResult : NSObject
|
||||
|
||||
/// 返回码
|
||||
@property(nonatomic,assign) int resultCode;
|
||||
|
||||
/// 返结果表述
|
||||
@property(nonatomic,strong) NSString *resultInfo;
|
||||
|
||||
/// 好友类型
|
||||
@property(nonatomic,assign) V2TIMFriendRelationType relation;
|
||||
|
||||
/// 好友个人资料,如果不是好友,除了 userID 字段,其他字段都为空
|
||||
@property(nonatomic,strong) V2TIMFriendInfo *friendInfo;
|
||||
@end
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 好友资料
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/// 好友资料
|
||||
V2TIM_EXPORT @interface V2TIMFriendInfo : NSObject
|
||||
|
||||
/// 好友 ID
|
||||
@property(nonatomic,strong) NSString *userID;
|
||||
|
||||
/**
|
||||
* 好友备注
|
||||
*
|
||||
* @note
|
||||
* - 备注长度最长不得超过 96 个字节;
|
||||
* - 字段描述详见 [控制台](https://cloud.tencent.com/document/product/269/1501#.E6.A0.87.E9.85.8D.E5.A5.BD.E5.8F.8B.E5.AD.97.E6.AE.B5)。
|
||||
*/
|
||||
@property(nonatomic,strong) NSString *friendRemark;
|
||||
|
||||
/// 好友添加时间
|
||||
@property(nonatomic,assign,readonly) uint64_t friendAddTime;
|
||||
|
||||
/// 好友自定义字段
|
||||
/// 首先要在 [控制台](https://console.cloud.tencent.com/im) (功能配置 -> 好友自定义字段) 配置好友自定义字段,然后再调用该接口进行设置,key 值不需要加 Tag_SNS_Custom_ 前缀。
|
||||
@property(nonatomic,strong) NSDictionary<NSString *,NSData *> *friendCustomInfo;
|
||||
|
||||
/**
|
||||
* 好友所在分组列表
|
||||
*
|
||||
* @note
|
||||
* - 最多支持 32 个分组;
|
||||
* - 不允许分组名为空;
|
||||
* - 分组名长度不得超过 30 个字节;
|
||||
* - 同一个好友可以有多个不同的分组。
|
||||
* - 字段描述详见 [控制台](https://cloud.tencent.com/document/product/269/1501#.E6.A0.87.E9.85.8D.E5.A5.BD.E5.8F.8B.E5.AD.97.E6.AE.B5)。
|
||||
*/
|
||||
@property(nonatomic,strong,readonly) NSArray *friendGroups;
|
||||
|
||||
/// 好友个人资料
|
||||
@property(nonatomic,strong,readonly) V2TIMUserFullInfo *userFullInfo;
|
||||
|
||||
@end
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 好友申请相关对象
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/// 加好友
|
||||
V2TIM_EXPORT @interface V2TIMFriendAddApplication : NSObject
|
||||
|
||||
/// 用户 userID(必填)
|
||||
@property (nonatomic,strong) NSString* userID;
|
||||
|
||||
/// 备注(备注最大96字节)
|
||||
@property (nonatomic,strong) NSString* friendRemark;
|
||||
|
||||
/// 预分组名(最大96字节)
|
||||
@property (nonatomic,strong) NSString* friendGroup;
|
||||
|
||||
/// 请求说明(最大120字节)
|
||||
@property (nonatomic,strong) NSString* addWording;
|
||||
|
||||
/// 添加来源
|
||||
@property (nonatomic,strong) NSString* addSource;
|
||||
|
||||
/// 加好友方式
|
||||
@property (nonatomic,assign) V2TIMFriendType addType;
|
||||
|
||||
@end
|
||||
|
||||
/// 好友申请列表
|
||||
V2TIM_EXPORT @interface V2TIMFriendApplicationResult : NSObject
|
||||
|
||||
/// 好友申请未读数量
|
||||
@property(nonatomic,assign) uint64_t unreadCount;
|
||||
|
||||
/// 好友申请列表
|
||||
@property(nonatomic,strong) NSMutableArray<V2TIMFriendApplication *> * applicationList;
|
||||
|
||||
@end
|
||||
|
||||
/// 好友申请
|
||||
V2TIM_EXPORT @interface V2TIMFriendApplication : NSObject
|
||||
|
||||
/// 用户标识
|
||||
@property(nonatomic,strong,readonly) NSString* userID;
|
||||
|
||||
/// 用户昵称
|
||||
@property(nonatomic,strong,readonly) NSString* nickName;
|
||||
|
||||
/// 用户头像
|
||||
@property(nonatomic,strong,readonly) NSString* faceUrl;
|
||||
|
||||
/// 添加时间
|
||||
@property(nonatomic,assign,readonly) uint64_t addTime;
|
||||
|
||||
/// 来源
|
||||
@property(nonatomic,strong,readonly) NSString* addSource;
|
||||
|
||||
/// 加好友附言
|
||||
@property(nonatomic,strong,readonly) NSString* addWording;
|
||||
|
||||
/// 好友申请类型
|
||||
@property(nonatomic,assign,readonly) V2TIMFriendApplicationType type;
|
||||
|
||||
@end
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 好友关系链检查结果
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/// 好友关系链检查结果
|
||||
V2TIM_EXPORT @interface V2TIMFriendCheckResult : NSObject
|
||||
|
||||
/// 用户id
|
||||
@property(nonatomic,strong) NSString* userID;
|
||||
|
||||
/// 返回码
|
||||
@property(nonatomic,assign) NSInteger resultCode;
|
||||
|
||||
/// 返回信息
|
||||
@property(nonatomic,strong) NSString *resultInfo;
|
||||
|
||||
/// 检查结果
|
||||
@property(nonatomic,assign) V2TIMFriendRelationType relationType;
|
||||
|
||||
@end
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 好友操作结果(添加、删除、加黑名单、添加分组等)
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/// 好友操作结果(添加、删除、加黑名单、添加分组等)
|
||||
V2TIM_EXPORT @interface V2TIMFriendOperationResult : NSObject
|
||||
|
||||
/// 用户Id
|
||||
@property(nonatomic,strong) NSString* userID;
|
||||
|
||||
/// 返回码
|
||||
@property(nonatomic,assign) NSInteger resultCode;
|
||||
|
||||
/// 返回信息
|
||||
@property(nonatomic,strong) NSString *resultInfo;
|
||||
|
||||
@end
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 好友分组
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/// 好友分组
|
||||
V2TIM_EXPORT @interface V2TIMFriendGroup : NSObject
|
||||
/// 好友分组名称
|
||||
@property(nonatomic,strong) NSString* groupName;
|
||||
|
||||
/// 分组成员数量
|
||||
@property(nonatomic,assign) uint64_t userCount;
|
||||
|
||||
/// 分组成员列表
|
||||
@property(nonatomic,strong) NSMutableArray* friendList;
|
||||
|
||||
@end
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 好友搜索
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
V2TIM_EXPORT @interface V2TIMFriendSearchParam : NSObject
|
||||
|
||||
/// 搜索的关键字列表,关键字列表最多支持 5 个
|
||||
@property(nonatomic, strong) NSArray<NSString *> *keywordList;
|
||||
|
||||
/// 设置是否搜索 userID
|
||||
@property(nonatomic, assign) BOOL isSearchUserID;
|
||||
|
||||
/// 是否设置搜索昵称
|
||||
@property(nonatomic, assign) BOOL isSearchNickName;
|
||||
|
||||
/// 是否设置搜索备注
|
||||
@property(nonatomic, assign) BOOL isSearchRemark;;
|
||||
|
||||
@end
|
||||
750
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/Headers/V2TIMManager+Group.h
generated
Executable file
750
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/Headers/V2TIMManager+Group.h
generated
Executable file
@@ -0,0 +1,750 @@
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 腾讯云通信服务 IMSDK
|
||||
//
|
||||
// 模块名称:V2TIMManager+Group
|
||||
//
|
||||
// 群组高级接口,里面包含了群组的高级功能,比如群成员邀请、非群成员申请进群等操作接口。
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
|
||||
#import "V2TIMManager.h"
|
||||
#import "V2TIMManager+Message.h"
|
||||
#import "V2TIMManager+Conversation.h"
|
||||
|
||||
@class V2TIMGroupMemberOperationResult;
|
||||
@class V2TIMGroupApplicationResult;
|
||||
@class V2TIMCreateGroupMemberInfo;
|
||||
@class V2TIMGroupInfo;
|
||||
@class V2TIMGroupInfoResult;
|
||||
@class V2TIMTopicInfo;
|
||||
@class V2TIMTopicInfoResult;
|
||||
@class V2TIMTopicOperationResult;
|
||||
@class V2TIMGroupApplication;
|
||||
@class V2TIMGroupSearchParam;
|
||||
@class V2TIMGroupMemberSearchParam;
|
||||
@class V2TIMGroupAtInfo;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 群相关的高级接口
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
V2TIM_EXPORT @interface V2TIMManager (Group)
|
||||
|
||||
/// 获取已加入群列表成功回调
|
||||
typedef void (^V2TIMGroupInfoListSucc)(NSArray<V2TIMGroupInfo *> *groupList);
|
||||
/// 获取指定群列表成功回调
|
||||
typedef void (^V2TIMGroupInfoResultListSucc)(NSArray<V2TIMGroupInfoResult *> *groupResultList);
|
||||
/// 获取群属性列表成功回调
|
||||
typedef void (^V2TIMGroupAttributeListSucc)(NSMutableDictionary<NSString *,NSString *> *groupAttributeList);
|
||||
/// 获取群成员列表成功回调
|
||||
typedef void (^V2TIMGroupMemberInfoListSucc)(NSArray<V2TIMGroupMemberFullInfo *> *memberList);
|
||||
/// 获取指定群成员列表成功回调
|
||||
typedef void (^V2TIMGroupMemberInfoResultSucc)(uint64_t nextSeq, NSArray<V2TIMGroupMemberFullInfo *> * memberList);
|
||||
/// 搜索群成员列表成功回调
|
||||
typedef void (^V2TIMGroupMemberInfoListSearchSucc)(NSDictionary<NSString *, NSArray<V2TIMGroupMemberFullInfo *> *> *memberList);
|
||||
/// 群成员操作成功回调
|
||||
typedef void (^V2TIMGroupMemberOperationResultListSucc)(NSArray<V2TIMGroupMemberOperationResult*> * resultList);
|
||||
/// 获取好友申请列表成功回调
|
||||
typedef void (^V2TIMGroupApplicationResultSucc)(V2TIMGroupApplicationResult *result);
|
||||
/// 获取群在线人数成功回调
|
||||
typedef void (^V2TIMGroupOnlineMemberCountSucc)(NSInteger count);
|
||||
/// 操作话题列表结果
|
||||
typedef void(^V2TIMTopicOperationResultSucc)(NSMutableArray<V2TIMTopicOperationResult *> *resultList);
|
||||
/// 获取话题列表结果
|
||||
typedef void(^V2TIMTopicInfoResultListSucc)(NSMutableArray<V2TIMTopicInfoResult *> *resultList);
|
||||
/// 创建话题成功回调
|
||||
typedef void (^V2TIMCreateTopicSucc)(NSString * topicID);
|
||||
/// 群计数器操作成功的回调
|
||||
typedef void (^V2TIMGroupCounterResultSucc)(NSDictionary<NSString *, NSNumber *> *groupCounters);
|
||||
|
||||
/// 加群选项
|
||||
typedef NS_ENUM(NSInteger, V2TIMGroupAddOpt) {
|
||||
V2TIM_GROUP_ADD_FORBID = 0, ///< 禁止加群
|
||||
V2TIM_GROUP_ADD_AUTH = 1, ///< 需要管理员审批
|
||||
V2TIM_GROUP_ADD_ANY = 2, ///< 任何人可以加入
|
||||
};
|
||||
|
||||
/// 群组操作结果
|
||||
typedef NS_ENUM(NSInteger, V2TIMGroupMemberResult) {
|
||||
V2TIM_GROUP_MEMBER_RESULT_FAIL = 0, ///< 操作失败
|
||||
V2TIM_GROUP_MEMBER_RESULT_SUCC = 1, ///< 操作成功
|
||||
V2TIM_GROUP_MEMBER_RESULT_INVALID = 2, ///< 无效操作,加群时已经是群成员,移除群组时不在群内
|
||||
V2TIM_GROUP_MEMBER_RESULT_PENDING = 3, ///< 等待处理,邀请入群时等待审批
|
||||
V2TIM_GROUP_MEMBER_RESULT_OVERLIMIT = 4, ///< 操作失败,创建群指定初始群成员列表或邀请入群时,被邀请者加入的群总数超限
|
||||
};
|
||||
|
||||
/// 群成员角色过滤方式
|
||||
typedef NS_ENUM(NSInteger, V2TIMGroupMemberFilter) {
|
||||
V2TIM_GROUP_MEMBER_FILTER_ALL = 0x00, ///< 全部成员
|
||||
V2TIM_GROUP_MEMBER_FILTER_OWNER = 0x01, ///< 群主
|
||||
V2TIM_GROUP_MEMBER_FILTER_ADMIN = 0x02, ///< 管理员
|
||||
V2TIM_GROUP_MEMBER_FILTER_COMMON = 0x04, ///< 普通成员
|
||||
};
|
||||
|
||||
/// 群组未决请求类型
|
||||
typedef NS_ENUM(NSInteger, V2TIMGroupApplicationType) {
|
||||
V2TIM_GROUP_JOIN_APPLICATION_NEED_APPROVED_BY_ADMIN = 0x0, ///< 需要群主或管理员审批的申请加群请求
|
||||
V2TIM_GROUP_INVITE_APPLICATION_NEED_APPROVED_BY_INVITEE = 0x1, ///< 需要被邀请者同意的邀请入群请求
|
||||
V2TIM_GROUP_INVITE_APPLICATION_NEED_APPROVED_BY_ADMIN = 0x2, ///< 需要群主或管理员审批的邀请入群请求
|
||||
};
|
||||
|
||||
/// 群组已决标志
|
||||
typedef NS_ENUM(NSInteger, V2TIMGroupApplicationHandleStatus) {
|
||||
V2TIM_GROUP_APPLICATION_HANDLE_STATUS_UNHANDLED = 0, ///< 未处理
|
||||
V2TIM_GROUP_APPLICATION_HANDLE_STATUS_HANDLED_BY_OTHER = 1, ///< 被他人处理
|
||||
V2TIM_GROUP_APPLICATION_HANDLE_STATUS_HANDLED_BY_SELF = 2, ///< 自己已处理
|
||||
};
|
||||
|
||||
/// 群组已决结果
|
||||
typedef NS_ENUM(NSInteger, V2TIMGroupApplicationHandleResult) {
|
||||
V2TIM_GROUP_APPLICATION_HANDLE_RESULT_REFUSE = 0, ///< 拒绝申请
|
||||
V2TIM_GROUP_APPLICATION_HANDLE_RESULT_AGREE = 1, ///< 同意申请
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// 群管理
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 1.1 创建自定义群组(高级版本:可以指定初始的群成员)
|
||||
*
|
||||
* @param info 自定义群组信息,可以设置 groupID | groupType | groupName | notification | introduction | faceURL 字段
|
||||
* @param memberList 指定初始的群成员(直播群 AVChatRoom 不支持指定初始群成员,memberList 请传 nil)
|
||||
*
|
||||
* @note
|
||||
* - 邀请的群成员个数不能超过 20(7.1 及其以上版本开始限制)
|
||||
* - 其他限制请参考 V2TIMManager.h -> createGroup 注释
|
||||
*/
|
||||
- (void)createGroup:(V2TIMGroupInfo*)info memberList:(NSArray<V2TIMCreateGroupMemberInfo *>*) memberList succ:(V2TIMCreateGroupSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 1.2 获取当前用户已经加入的群列表
|
||||
*
|
||||
* @note
|
||||
* - 直播群(AVChatRoom)不支持该 API
|
||||
* - 该接口有频限检测,SDK 限制调用频率为 1 秒 10 次,超过限制后会报 ERR_SDK_COMM_API_CALL_FREQUENCY_LIMIT (7008)错误
|
||||
*/
|
||||
- (void)getJoinedGroupList:(V2TIMGroupInfoListSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// 群资料管理
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 2.1 拉取群资料
|
||||
*
|
||||
* @param groupIDList 群组 ID 列表
|
||||
*/
|
||||
- (void)getGroupsInfo:(NSArray<NSString *> *)groupIDList succ:(V2TIMGroupInfoResultListSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 2.2 搜索群列表(5.4.666 及以上版本支持)
|
||||
* @note 该功能为 IM 旗舰版功能,[购买旗舰版套餐包](https://buy.cloud.tencent.com/avc?from=17474)后可使用,详见[价格说明](https://cloud.tencent.com/document/product/269/11673?from=17176#.E5.9F.BA.E7.A1.80.E6.9C.8D.E5.8A.A1.E8.AF.A6.E6.83.85)
|
||||
*/
|
||||
- (void)searchGroups:(V2TIMGroupSearchParam *)searchParam succ:(V2TIMGroupInfoListSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 2.3 修改群资料
|
||||
*/
|
||||
- (void)setGroupInfo:(V2TIMGroupInfo *)info succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 2.4 初始化群属性,会清空原有的群属性列表
|
||||
*
|
||||
* @note
|
||||
* attributes 的使用限制如下:
|
||||
* - 6.7 及其以前版本,只支持 AVChatRoom 直播群;
|
||||
* - 从 6.8 版本开始,同时支持 AVChatRoom、Public、Meeting、Work 四种群类型;
|
||||
* - 从 7.0 版本开始,除了话题外,群属性支持所有的群类型;
|
||||
* - key 最多支持 16 个,长度限制为 32 字节;
|
||||
* - value 长度限制为 4k;
|
||||
* - 总的 attributes(包括 key 和 value)限制为 16k;
|
||||
* - initGroupAttributes、setGroupAttributes、deleteGroupAttributes 接口合并计算, SDK 限制为 5 秒 10 次,超过后回调 8511 错误码;后台限制 1 秒 5 次,超过后返回 10049 错误码;
|
||||
* - getGroupAttributes 接口 SDK 限制 5 秒 20 次;
|
||||
* - 从 5.6 版本开始,当每次APP启动后初次修改群属性时,请您先调用 getGroupAttributes 拉取到最新的群属性之后,再发起修改操作;
|
||||
* - 从 5.6 版本开始,当多个用户同时修改同一个群属性时,只有第一个用户可以执行成功,其它用户会收到 10056 错误码;收到这个错误码之后,请您调用 getGroupAttributes 把本地保存的群属性更新到最新之后,再发起修改操作。
|
||||
*/
|
||||
- (void)initGroupAttributes:(NSString*)groupID attributes:(NSDictionary<NSString *,NSString *> *)attributes succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 2.5 设置群属性,已有该群属性则更新其 value 值,没有该群属性则添加该群属性。
|
||||
* @note
|
||||
* - 6.7 及其以前版本,只支持 AVChatRoom 直播群;
|
||||
* - 从 6.8 版本开始,同时支持 AVChatRoom、Public、Meeting、Work 四种群类型;
|
||||
* - 从 7.0 版本开始,除了话题外,群属性支持所有的群类型。
|
||||
*/
|
||||
- (void)setGroupAttributes:(NSString*)groupID attributes:(NSDictionary<NSString *,NSString *> *)attributes succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 2.6 删除群指定属性,keys 传 nil 则清空所有群属性。
|
||||
* @note
|
||||
* - 6.7 及其以前版本,只支持 AVChatRoom 直播群;
|
||||
* - 从 6.8 版本开始,同时支持 AVChatRoom、Public、Meeting、Work 四种群类型;
|
||||
* - 从 7.0 版本开始,除了话题外,群属性支持所有的群类型。
|
||||
*/
|
||||
- (void)deleteGroupAttributes:(NSString*)groupID keys:(NSArray<NSString *> *)keys succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 2.7 获取群指定属性,keys 传 nil 则获取所有群属性。
|
||||
* @note
|
||||
* - 6.7 及其以前版本,只支持 AVChatRoom 直播群;
|
||||
* - 从 6.8 版本开始,同时支持 AVChatRoom、Public、Meeting、Work 四种群类型;
|
||||
* - 从 7.0 版本开始,除了话题外,群属性支持所有的群类型。
|
||||
*/
|
||||
- (void)getGroupAttributes:(NSString*)groupID keys:(NSArray<NSString *> *)keys succ:(V2TIMGroupAttributeListSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 2.8 获取指定群在线人数
|
||||
*
|
||||
* @param groupID 群id
|
||||
* @param succ 成功回调
|
||||
* @param fail 失败回调
|
||||
*
|
||||
* @note 请注意
|
||||
* - 目前只支持:直播群( AVChatRoom)。
|
||||
*/
|
||||
- (void)getGroupOnlineMemberCount:(NSString*)groupID succ:(V2TIMGroupOnlineMemberCountSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 2.9 设置群计数器(7.0 及其以上版本支持)
|
||||
*
|
||||
* @note
|
||||
* - 该计数器的 key 如果存在,则直接更新计数器的 value 值;如果不存在,则添加该计数器的 key-value;
|
||||
* - 当群计数器设置成功后,在 succ 回调中会返回最终成功设置的群计数器信息;
|
||||
* - 除了社群和话题,群计数器支持所有的群组类型。
|
||||
*/
|
||||
- (void)setGroupCounters:(NSString *)groupID counters:(NSDictionary<NSString *, NSNumber *> *)counters succ:(V2TIMGroupCounterResultSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 2.10 获取群计数器(7.0 及其以上版本支持)
|
||||
*
|
||||
* @note
|
||||
* - 如果 keys 为空,则表示获取群内的所有计数器;
|
||||
* - 除了社群和话题,群计数器支持所有的群组类型。
|
||||
*/
|
||||
- (void)getGroupCounters:(NSString *)groupID keys:(NSArray<NSString *> *)keys succ:(V2TIMGroupCounterResultSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 2.11 递增群计数器(7.0 及其以上版本支持)
|
||||
*
|
||||
* @param groupID 群 ID
|
||||
* @param key 群计数器的 key
|
||||
* @param value 群计数器的递增的变化量,计数器 key 对应的 value 变更方式为: new_value = old_value + value
|
||||
* @param succ 成功后的回调,会返回当前计数器做完递增操作后的 value
|
||||
* @param fail 失败的回调
|
||||
*
|
||||
* @note
|
||||
* - 该计数器的 key 如果存在,则直接在当前值的基础上根据传入的 value 作递增操作;反之,添加 key,并在默认值为 0 的基础上根据传入的 value 作递增操作;
|
||||
* - 除了社群和话题,群计数器支持所有的群组类型。
|
||||
*/
|
||||
- (void)increaseGroupCounter:(NSString *)groupID key:(NSString *)key value:(NSInteger)value succ:(V2TIMGroupCounterResultSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 2.12 递减群计数器(7.0 及其以上版本支持)
|
||||
*
|
||||
* @param groupID 群 ID
|
||||
* @param key 群计数器的 key
|
||||
* @param value 群计数器的递减的变化量,计数器 key 对应的 value 变更方式为: new_value = old_value - value
|
||||
* @param succ 成功后的回调,会返回当前计数器做完递减操作后的 value
|
||||
* @param fail 失败的回调
|
||||
*
|
||||
* @note
|
||||
* - 该计数器的 key 如果存在,则直接在当前值的基础上根据传入的 value 作递减操作;反之,添加 key,并在默认值为 0 的基础上根据传入的 value 作递减操作
|
||||
* - 除了社群和话题,群计数器支持所有的群组类型。
|
||||
*/
|
||||
- (void)decreaseGroupCounter:(NSString *)groupID key:(NSString *)key value:(NSInteger)value succ:(V2TIMGroupCounterResultSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// 群成员管理
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/**
|
||||
* 3.1 获取群成员列表
|
||||
*
|
||||
* @param filter 指定群成员类型。
|
||||
* @param nextSeq 分页拉取标志,第一次拉取填 0,回调成功如果 nextSeq 不为零,需要分页,传入再次拉取,直至为 0。
|
||||
*
|
||||
* @note
|
||||
* - 普通群(工作群、会议群、公开群、社群)的限制:
|
||||
* 1. filter 只能设置为 V2TIMGroupMemberFilter 定义的数值,SDK 会返回指定角色的成员。
|
||||
*
|
||||
* - 直播群(AVChatRoom)的限制:
|
||||
* 1. 如果设置 filter 为 V2TIMGroupMemberFilter 定义的数值,SDK 返回全部成员。返回的人数规则为:旗舰版支持拉取最近入群群成员最多 1000 人,新进来的成员排在前面(6.3 及以上版本支持,需要先在 [控制台](https://console.cloud.tencent.com/im) 开启开关;非旗舰版支持拉取最近入群群成员最多 31 人,新进来的成员排在前面。
|
||||
* 2. 如果设置 filter 为群成员自定义标记,旗舰版支持拉取指定标记的成员列表。标记群成员的设置请参考 markGroupMemberList:memberList:markType:enableMark:succ:fail: API。
|
||||
* 3. 程序重启后,请重新加入群组,否则拉取群成员会报 10007 错误码。
|
||||
* 4. 群成员资料信息仅支持 userID | nickName | faceURL | role 字段。
|
||||
*/
|
||||
- (void)getGroupMemberList:(NSString*)groupID filter:(uint32_t)filter nextSeq:(uint64_t)nextSeq succ:(V2TIMGroupMemberInfoResultSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 3.2 指定的群成员资料
|
||||
*/
|
||||
- (void)getGroupMembersInfo:(NSString*)groupID memberList:(NSArray<NSString*>*)memberList succ:(V2TIMGroupMemberInfoListSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 3.3 搜索指定的群成员资料(5.4.666 及以上版本支持)
|
||||
*
|
||||
* @param searchParam 搜索参数
|
||||
* @note 该功能为 IM 旗舰版功能,[购买旗舰版套餐包](https://buy.cloud.tencent.com/avc?from=17474)后可使用,详见[价格说明](https://cloud.tencent.com/document/product/269/11673?from=17176#.E5.9F.BA.E7.A1.80.E6.9C.8D.E5.8A.A1.E8.AF.A6.E6.83.85)
|
||||
*/
|
||||
- (void)searchGroupMembers:(V2TIMGroupMemberSearchParam *)searchParam
|
||||
succ:(V2TIMGroupMemberInfoListSearchSucc)succ
|
||||
fail:(V2TIMFail)fail;
|
||||
/**
|
||||
* 3.4 修改指定的群成员资料
|
||||
*/
|
||||
- (void)setGroupMemberInfo:(NSString*)groupID info:(V2TIMGroupMemberFullInfo *)info succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 3.5 禁言(只有管理员或群主能够调用)
|
||||
*
|
||||
* @param seconds 禁言时间长度,单位秒,表示调用该接口成功后多少秒内不允许被禁言用户再发言。
|
||||
*/
|
||||
- (void)muteGroupMember:(NSString*)groupID member:(NSString*)userID muteTime:(uint32_t)seconds succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 3.6 邀请他人入群
|
||||
*
|
||||
* @note 请注意不同类型的群有如下限制:
|
||||
* - 工作群(Work):群里的任何人都可以邀请其他人进群。
|
||||
* - 会议群(Meeting)和公开群(Public):只有通过rest api 使用 App 管理员身份才可以邀请其他人进群。
|
||||
* - 直播群(AVChatRoom):不支持此功能。
|
||||
* - 单次邀请的群成员个数不能超过 20(7.1 及其以上版本开始限制)。
|
||||
*/
|
||||
- (void)inviteUserToGroup:(NSString*)groupID userList:(NSArray<NSString *>*)userList succ:(V2TIMGroupMemberOperationResultListSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 3.7 踢人(直播群踢人从 6.6 版本开始支持,需要您购买旗舰版套餐)
|
||||
*
|
||||
* @note 请注意不同类型的群有如下限制:
|
||||
* - 工作群(Work):只有群主或 APP 管理员可以踢人。
|
||||
* - 公开群(Public)、会议群(Meeting):群主、管理员和 APP 管理员可以踢人
|
||||
* - 直播群(AVChatRoom):6.6 之前版本只支持禁言(muteGroupMember),不支持踢人。6.6 及以上版本支持禁言和踢人。
|
||||
*/
|
||||
- (void)kickGroupMember:(NSString*)groupID memberList:(NSArray<NSString *>*)memberList reason:(NSString*)reason succ:(V2TIMGroupMemberOperationResultListSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 3.8 切换群成员的角色
|
||||
*
|
||||
* @note 请注意不同类型的群有如下限制:
|
||||
* - 公开群(Public)和会议群(Meeting):只有群主才能对群成员进行普通成员和管理员之间的角色切换。
|
||||
* - 其他群不支持设置群成员角色。
|
||||
* - 转让群组请调用 @ref transferGroupOwner 接口。
|
||||
* - 会议群(Meeting)切换群成员角色之后,不会有 onGrantAdministrator 和 onRevokeAdministrator 通知回调
|
||||
* - 切换的角色支持普通群成员( V2TIM_GROUP_MEMBER_ROLE_MEMBER) 和管理员(V2TIM_GROUP_MEMBER_ROLE_ADMIN
|
||||
*/
|
||||
- (void)setGroupMemberRole:(NSString*)groupID member:(NSString *)userID newRole:(uint32_t)role succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 3.9 标记群成员(从 6.6 版本开始支持,需要您购买旗舰版套餐)
|
||||
*
|
||||
* @param groupID 群 ID。
|
||||
* @param memberList 群成员 ID 列表。
|
||||
* @param markType 标记类型。数字类型,大于等于 1000,您可以自定义,一个直播群里最多允许定义 10 个标记。
|
||||
* @param enableMark YES 表示添加标记,NO 表示移除标记。
|
||||
* @note 请注意
|
||||
* - 仅支持直播群。
|
||||
* - 只有群主才有权限标记群组中其他人。
|
||||
*/
|
||||
- (void)markGroupMemberList:(NSString *)groupID memberList:(NSArray<NSString *> *)memberList markType:(uint32_t)markType enableMark:(BOOL)enableMark succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 3.10 转让群主
|
||||
*
|
||||
* @note 请注意不同类型的群有如下限制:
|
||||
* - 普通类型的群(Work、Public、Meeting):只有群主才有权限进行群转让操作。
|
||||
* - 直播群(AVChatRoom):不支持转让群主。
|
||||
*/
|
||||
- (void)transferGroupOwner:(NSString*)groupID member:(NSString*)userID succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// 加群申请
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 4.1 获取加群申请列表
|
||||
* @note 最多支持50个
|
||||
*/
|
||||
- (void)getGroupApplicationList:(V2TIMGroupApplicationResultSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 4.2 同意某一条加群申请
|
||||
*/
|
||||
- (void)acceptGroupApplication:(V2TIMGroupApplication *)application reason:(NSString*)reason succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 4.3 拒绝某一条加群申请
|
||||
*/
|
||||
- (void)refuseGroupApplication:(V2TIMGroupApplication *)application reason:(NSString*)reason succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 4.4 标记申请列表为已读
|
||||
*/
|
||||
- (void)setGroupApplicationRead:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// 社群-话题
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/**
|
||||
* 5.1 获取当前用户已经加入的支持话题的社群列表
|
||||
*/
|
||||
- (void)getJoinedCommunityList:(V2TIMGroupInfoListSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 5.2 创建话题
|
||||
*/
|
||||
- (void)createTopicInCommunity:(NSString *)groupID topicInfo:(V2TIMTopicInfo *)topicInfo succ:(V2TIMCreateTopicSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 5.3 删除话题
|
||||
*/
|
||||
- (void)deleteTopicFromCommunity:(NSString *)groupID topicIDList:(NSArray<NSString *>*)topicIDList succ:(V2TIMTopicOperationResultSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 5.4 修改话题信息
|
||||
*/
|
||||
- (void)setTopicInfo:(V2TIMTopicInfo *)topicInfo succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 5.5 获取话题列表。
|
||||
* @note: topicIDList 传空时,获取此社群下的所有话题列表
|
||||
*/
|
||||
- (void)getTopicInfoList:(NSString *)groupID topicIDList:(NSArray<NSString *>*)topicIDList succ:(V2TIMTopicInfoResultListSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
@end
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 群基本资料(可以通过 getGroupInfo 获取,不支持由客户自行创建)
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/// 群资料
|
||||
V2TIM_EXPORT @interface V2TIMGroupInfo : NSObject
|
||||
|
||||
/**
|
||||
* 群组 ID
|
||||
*
|
||||
* @note 自定义群组 ID 必须为可打印 ASCII 字符(0x20-0x7e),最长48个字节,且前缀不能为 @TGS#(避免与默认分配的群组 ID 混淆)
|
||||
*/
|
||||
@property(nonatomic,strong) NSString* groupID;
|
||||
|
||||
/// 群类型
|
||||
@property(nonatomic,strong) NSString* groupType;
|
||||
|
||||
/**
|
||||
* 社群是否支持创建话题
|
||||
* @note 只在群类型为 Community 时有效
|
||||
*/
|
||||
@property(nonatomic,assign) BOOL isSupportTopic;
|
||||
|
||||
/**
|
||||
* 群名称
|
||||
*
|
||||
* @note 群名称最长30字节
|
||||
*/
|
||||
@property(nonatomic,strong) NSString* groupName;
|
||||
|
||||
/**
|
||||
* 群公告
|
||||
*
|
||||
* @note 群公告最长300字节
|
||||
*/
|
||||
@property(nonatomic,strong) NSString* notification;
|
||||
|
||||
/**
|
||||
* 群简介
|
||||
*
|
||||
* @note 群简介最长240字节
|
||||
*/
|
||||
@property(nonatomic,strong) NSString* introduction;
|
||||
|
||||
/**
|
||||
* 群头像
|
||||
*
|
||||
* @note 群头像 URL 最长100字节
|
||||
*/
|
||||
@property(nonatomic,strong) NSString* faceURL;
|
||||
|
||||
/// 是否全员禁言
|
||||
@property(nonatomic,assign) BOOL allMuted;
|
||||
|
||||
///设置群自定义字段需要两个步骤:
|
||||
///1.在 [控制台](https://console.cloud.tencent.com/im) (功能配置 -> 群自定义字段) 配置群自定义字段的 key 值,Key 为 String 类型,长度不超过 16 字节。
|
||||
///2.调用 setGroupInfo 接口设置该字段,value 为 NSData 数据,长度不超过 512 字节。
|
||||
///@note 该字段主要用于 V1 和 V2 版本的兼容,如果您直接使用的是 V2 版本的 API ,建议使用 initGroupAttributes 接口设置群属性,其设置更灵活(无需控制台配置),支持的存储也更大(最大支持 16K)
|
||||
@property(nonatomic,strong) NSDictionary<NSString *,NSData *>* customInfo;
|
||||
|
||||
/// 群创建人/管理员
|
||||
@property(nonatomic,strong,readonly) NSString *owner;
|
||||
|
||||
/// 群创建时间
|
||||
@property(nonatomic,assign,readonly) uint32_t createTime;
|
||||
|
||||
/// 申请进群是否需要管理员审批:工作群(Work)默认值为 V2TIM_GROUP_ADD_FORBID,即默认不允许申请入群,您可以修改该字段打开申请入群方式。
|
||||
@property(nonatomic,assign) V2TIMGroupAddOpt groupAddOpt;
|
||||
|
||||
/// 邀请进群是否需要管理员审批 (从 7.1 版本开始支持)
|
||||
/// - 除工作群(Work)之外的其他群类型默认值都为 V2TIM_GROUP_ADD_FORBID,即默认不允许邀请入群,您可以修改该字段打开邀请入群方式。
|
||||
/// - 直播群、社群和话题默认不允许邀请入群,也不支持修改。
|
||||
@property(nonatomic,assign) V2TIMGroupAddOpt groupApproveOpt;
|
||||
|
||||
/// 群最近一次群资料修改时间
|
||||
@property(nonatomic,assign,readonly) uint32_t lastInfoTime;
|
||||
|
||||
/// 群最近一次发消息时间
|
||||
@property(nonatomic,assign,readonly) uint32_t lastMessageTime;
|
||||
|
||||
/// 已加入的群成员数量
|
||||
@property(nonatomic,assign,readonly) uint32_t memberCount;
|
||||
|
||||
/// 在线的群成员数量
|
||||
@property(nonatomic,assign,readonly) uint32_t onlineCount;
|
||||
|
||||
/// 最多允许加入的群成员数量
|
||||
/// @note 各类群成员人数限制详见: https://cloud.tencent.com/document/product/269/1502#.E7.BE.A4.E7.BB.84.E9.99.90.E5.88.B6.E5.B7.AE.E5.BC.82
|
||||
@property(nonatomic,assign,readonly) uint32_t memberMaxCount;
|
||||
|
||||
/// 当前用户在此群组中的角色(V2TIMGroupMemberRole),切换角色请调用 setGroupMemberRole 接口
|
||||
@property(nonatomic,assign,readonly) uint32_t role;
|
||||
|
||||
/// 当前用户在此群组中的消息接收选项,修改群消息接收选项请调用 setGroupReceiveMessageOpt 接口
|
||||
@property(nonatomic,assign,readonly) V2TIMReceiveMessageOpt recvOpt;
|
||||
|
||||
/// 当前用户在此群中的加入时间,不支持设置,系统自动生成
|
||||
@property(nonatomic,assign,readonly) uint32_t joinTime;
|
||||
|
||||
@end
|
||||
|
||||
/// 获取群组资料结果
|
||||
V2TIM_EXPORT @interface V2TIMGroupInfoResult : NSObject
|
||||
|
||||
/// 结果 0:成功;非0:失败
|
||||
@property(nonatomic,assign) int resultCode;
|
||||
|
||||
/// 如果获取失败,会返回错误信息
|
||||
@property(nonatomic,strong) NSString *resultMsg;
|
||||
|
||||
/// 如果获取成功,会返回对应的 info
|
||||
@property(nonatomic,strong) V2TIMGroupInfo *info;
|
||||
|
||||
@end
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 话题基本资料(可以通过 getTopics 获取,不支持由客户自行创建)
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
V2TIM_EXPORT @interface V2TIMTopicInfo : NSObject
|
||||
|
||||
/// 话题 ID
|
||||
@property(nonatomic, strong) NSString *topicID;
|
||||
|
||||
/// 话题名称
|
||||
@property(nonatomic, strong) NSString *topicName;
|
||||
|
||||
/// 话题头像
|
||||
@property(nonatomic, strong) NSString *topicFaceURL;
|
||||
|
||||
/// 话题介绍
|
||||
@property(nonatomic, strong) NSString *introduction;
|
||||
|
||||
/// 话题公告
|
||||
@property(nonatomic, strong) NSString *notification;
|
||||
|
||||
/// 话题全员禁言
|
||||
@property(nonatomic, assign) BOOL isAllMuted;
|
||||
|
||||
/// 当前用户在话题中的禁言时间
|
||||
@property(nonatomic, assign, readonly) uint32_t selfMuteTime;
|
||||
|
||||
/// 话题自定义字段
|
||||
@property(nonatomic, strong) NSString *customString;
|
||||
|
||||
/// 话题消息接收选项,修改话题消息接收选项请调用 setGroupReceiveMessageOpt 接口
|
||||
@property(nonatomic, assign, readonly) V2TIMReceiveMessageOpt recvOpt;
|
||||
|
||||
/// 话题草稿
|
||||
@property(nonatomic, strong) NSString *draftText;
|
||||
|
||||
/// 话题消息未读数量
|
||||
@property(nonatomic, assign, readonly) uint64_t unreadCount;
|
||||
|
||||
/// 话题 lastMessage
|
||||
@property(nonatomic,strong,readonly) V2TIMMessage *lastMessage;
|
||||
|
||||
/// 话题 at 信息列表
|
||||
@property(nonatomic, strong, readonly) NSArray<V2TIMGroupAtInfo *> *groupAtInfolist;
|
||||
@end
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// V2TIMTopicOperationResult
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
V2TIM_EXPORT @interface V2TIMTopicOperationResult : NSObject
|
||||
|
||||
/// 结果 0:成功;非0:失败
|
||||
@property(nonatomic, assign) int errorCode;
|
||||
|
||||
/// 如果删除失败,会返回错误信息
|
||||
@property(nonatomic, strong) NSString *errorMsg;
|
||||
|
||||
/// 如果删除成功,会返回对应的 topicID
|
||||
@property(nonatomic, strong) NSString *topicID;
|
||||
@end
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// V2TIMTopicInfoResult
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
V2TIM_EXPORT @interface V2TIMTopicInfoResult : NSObject
|
||||
|
||||
/// 结果 0:成功;非0:失败
|
||||
@property(nonatomic, assign) int errorCode;
|
||||
|
||||
/// 如果获取失败,会返回错误信息
|
||||
@property(nonatomic, strong) NSString *errorMsg;
|
||||
|
||||
/// 如果获取成功,会返回对应的 info
|
||||
@property(nonatomic, strong) V2TIMTopicInfo *topicInfo;
|
||||
@end
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 群申请信息(可以通过 getGroupApplicationList 获取,不支持由客户自行创建)
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/// 群申请信息
|
||||
V2TIM_EXPORT @interface V2TIMGroupApplication : NSObject
|
||||
|
||||
/// 群组 ID
|
||||
@property(nonatomic,strong,readonly) NSString* groupID;
|
||||
|
||||
/// 请求者 userID
|
||||
@property(nonatomic,strong,readonly) NSString* fromUser;
|
||||
|
||||
/// 请求者昵称
|
||||
@property(nonatomic,strong,readonly) NSString* fromUserNickName;
|
||||
|
||||
/// 请求者头像
|
||||
@property(nonatomic,strong,readonly) NSString* fromUserFaceUrl;
|
||||
|
||||
/// 判决者id,有人请求加群:0,邀请其他人加群:被邀请人用户 ID
|
||||
@property(nonatomic,strong,readonly) NSString* toUser;
|
||||
|
||||
/// 申请时间
|
||||
@property(nonatomic,assign,readonly) uint64_t addTime;
|
||||
|
||||
/// 申请或邀请附加信息
|
||||
@property(nonatomic,strong,readonly) NSString* requestMsg;
|
||||
|
||||
/// 审批信息:同意或拒绝信息
|
||||
@property(nonatomic,strong,readonly) NSString* handledMsg;
|
||||
|
||||
/// 请求类型
|
||||
@property(nonatomic,assign,readonly) V2TIMGroupApplicationType applicationType;
|
||||
|
||||
/// 处理标志
|
||||
@property(nonatomic,assign,readonly) V2TIMGroupApplicationHandleStatus handleStatus;
|
||||
|
||||
/// 处理结果
|
||||
@property(nonatomic,assign,readonly) V2TIMGroupApplicationHandleResult handleResult;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 邀请其他人入群的操作结果
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/// 邀请其他人入群的操作结果
|
||||
V2TIM_EXPORT @interface V2TIMGroupMemberOperationResult : NSObject
|
||||
|
||||
/// 被操作成员
|
||||
@property(nonatomic,strong) NSString* userID;
|
||||
|
||||
/// 返回状态
|
||||
@property(nonatomic,assign) V2TIMGroupMemberResult result;
|
||||
|
||||
@end
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 创建群时指定群成员
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/// 创建群时指定群成员
|
||||
V2TIM_EXPORT @interface V2TIMCreateGroupMemberInfo : NSObject
|
||||
|
||||
/// 被操作成员
|
||||
@property(nonatomic,strong) NSString* userID;
|
||||
|
||||
/** 群成员类型,需要注意一下事项:
|
||||
* 1. role 不设置或则设置为 V2TIM_GROUP_MEMBER_UNDEFINED,进群后默认为群成员。
|
||||
* 2. 工作群(Work)不支持设置 role 为管理员。
|
||||
* 3. 所有的群都不支持设置 role 为群主。
|
||||
*/
|
||||
@property(nonatomic,assign) uint32_t role;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 加群申请列表(包含已处理和待处理的)
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/// 加群申请列表
|
||||
V2TIM_EXPORT @interface V2TIMGroupApplicationResult : NSObject
|
||||
|
||||
/// 未读的申请数量
|
||||
@property(nonatomic,assign) uint64_t unreadCount;
|
||||
|
||||
/// 加群申请的列表
|
||||
@property(nonatomic,strong) NSMutableArray<V2TIMGroupApplication *> * applicationList;
|
||||
@end
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 群搜索
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
V2TIM_EXPORT @interface V2TIMGroupSearchParam : NSObject
|
||||
|
||||
/// 搜索关键字列表,最多支持5个。
|
||||
@property(nonatomic, strong) NSArray<NSString *> *keywordList;
|
||||
|
||||
/// 设置是否搜索群 ID。
|
||||
@property(nonatomic, assign) BOOL isSearchGroupID;
|
||||
|
||||
/// 设置是否搜索群名称
|
||||
@property(nonatomic, assign) BOOL isSearchGroupName;
|
||||
|
||||
@end
|
||||
|
||||
V2TIM_EXPORT @interface V2TIMGroupMemberSearchParam : NSObject
|
||||
|
||||
/// 指定群 ID 列表,若为 null 则搜索全部群中的群成员
|
||||
@property(nonatomic, strong) NSArray<NSString *> *groupIDList;
|
||||
|
||||
/// 搜索关键字列表,最多支持5个
|
||||
@property(nonatomic, strong) NSArray<NSString *> *keywordList;
|
||||
|
||||
/// 设置是否搜索群成员 userID
|
||||
@property(nonatomic, assign) BOOL isSearchMemberUserID;
|
||||
|
||||
/// 设置是否搜索群成员昵称
|
||||
@property(nonatomic, assign) BOOL isSearchMemberNickName;
|
||||
|
||||
/// 设置是否搜索群成员备注
|
||||
@property(nonatomic, assign) BOOL isSearchMemberRemark;
|
||||
|
||||
/// 设置是否搜索群成员名片
|
||||
@property(nonatomic, assign) BOOL isSearchMemberNameCard;
|
||||
|
||||
@end
|
||||
1472
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/Headers/V2TIMManager+Message.h
generated
Executable file
1472
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/Headers/V2TIMManager+Message.h
generated
Executable file
File diff suppressed because it is too large
Load Diff
170
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/Headers/V2TIMManager+Signaling.h
generated
Executable file
170
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/Headers/V2TIMManager+Signaling.h
generated
Executable file
@@ -0,0 +1,170 @@
|
||||
|
||||
#import "V2TIMManager.h"
|
||||
#import "V2TIMManager+Message.h"
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// 信令
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/// 信令信息
|
||||
@class V2TIMSignalingInfo;
|
||||
/// 信令监听
|
||||
V2TIM_EXPORT @protocol V2TIMSignalingListener;
|
||||
|
||||
V2TIM_EXPORT @interface V2TIMManager (Signaling)
|
||||
|
||||
/**
|
||||
* 获取信令信息成功回调
|
||||
*/
|
||||
typedef void (^V2TIMSignalingInfoSucc)(V2TIMSignalingInfo * signalInfo);
|
||||
|
||||
/**
|
||||
* 添加信令监听
|
||||
*/
|
||||
- (void)addSignalingListener:(id<V2TIMSignalingListener>)listener
|
||||
NS_SWIFT_NAME(addSignalingListener(listener:));
|
||||
|
||||
/**
|
||||
* 移除信令监听
|
||||
*/
|
||||
- (void)removeSignalingListener:(id<V2TIMSignalingListener>)listener
|
||||
NS_SWIFT_NAME(removeSignalingListener(listener:));
|
||||
|
||||
/**
|
||||
* 邀请某个人
|
||||
*
|
||||
* @param invitee 被邀请人用户 ID
|
||||
* @param data 自定义数据
|
||||
* @param timeout 超时时间,单位 s,如果设置为 0,SDK 不会做超时检测,也不会触发 onInvitationTimeout 回调
|
||||
* @param onlineUserOnly 是否只有在线用户才能收到邀请,如果设置为 YES,只有在线用户才能收到,并且 invite 操作也不会产生历史消息(针对该次 invite 的后续 cancel、accept、reject、timeout 操作也同样不会产生历史消息)。
|
||||
* @param offlinePushInfo 苹果 APNS 离线推送时携带的标题和声音,其中 desc 为必填字段,推送的时候会默认展示 desc 信息。
|
||||
* @return inviteID 邀请 ID,如果邀请失败,返回 nil
|
||||
*
|
||||
*/
|
||||
- (NSString*)invite:(NSString *)invitee
|
||||
data:(NSString *)data
|
||||
onlineUserOnly:(BOOL)onlineUserOnly
|
||||
offlinePushInfo:(V2TIMOfflinePushInfo *)offlinePushInfo
|
||||
timeout:(int)timeout
|
||||
succ:(V2TIMSucc)succ
|
||||
fail:(V2TIMFail)fail;
|
||||
/**
|
||||
* 邀请群内的某些人
|
||||
*
|
||||
* @param groupID 发起邀请所在群组
|
||||
* @param inviteeList 被邀请人列表,inviteeList 必须已经在 groupID 群里,否则邀请无效
|
||||
* @param timeout 超时时间,单位 s,如果设置为 0,SDK 不会做超时检测,也不会触发 onInvitationTimeout 回调
|
||||
* @param onlineUserOnly 是否只有在线用户才能收到邀请,如果设置为 YES,只有在线用户才能收到,并且 invite 操作也不会产生历史消息(针对该次 invite 的后续 cancel、accept、reject、timeout 操作也同样不会产生历史消息)。
|
||||
* @return inviteID 邀请 ID,如果邀请失败,返回 nil
|
||||
*
|
||||
* @note 群邀请暂不支持离线推送,如果您需要离线推送,可以针对被邀请的用户单独发离线推送自定义消息。
|
||||
*/
|
||||
- (NSString*)inviteInGroup:(NSString *)groupID
|
||||
inviteeList:(NSArray *)inviteeList
|
||||
data:(NSString *)data
|
||||
onlineUserOnly:(BOOL)onlineUserOnly
|
||||
timeout:(int)timeout
|
||||
succ:(V2TIMSucc)succ
|
||||
fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 邀请方取消邀请
|
||||
*
|
||||
* @param inviteID 邀请 ID
|
||||
*
|
||||
* @note 如果所有被邀请人都已经处理了当前邀请(包含超时),不能再取消当前邀请。
|
||||
*/
|
||||
- (void)cancel:(NSString *)inviteID data:(NSString *)data succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 接收方接受邀请
|
||||
*
|
||||
* @note 不能接受不是针对自己的邀请,请在收到 onReceiveNewInvitation 回调的时候先判断 inviteeList 有没有自己,如果没有自己,不能 accept 邀请。
|
||||
*/
|
||||
- (void)accept:(NSString *)inviteID data:(NSString *)data succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 接收方拒绝邀请
|
||||
*
|
||||
* @note 不能拒绝不是针对自己的邀请,请在收到 onReceiveNewInvitation 回调的时候先判断 inviteeList 有没有自己,如果没有自己,不能 reject 邀请。
|
||||
*/
|
||||
- (void)reject:(NSString *)inviteID data:(NSString *)data succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 获取信令信息
|
||||
*
|
||||
* 如果 invite 设置 onlineUserOnly 为 NO,每次信令操作(包括 invite、cancel、accept、reject、timeout)都会产生一条自定义消息,该消息会通过 V2TIMAdvancedMsgListener -> onRecvNewMessage 抛给用户,用户也可以通过历史消息拉取,如果需要根据信令信息做自定义化文本展示,可以调用下面接口获取信令信息。
|
||||
*
|
||||
* @param msg 消息对象
|
||||
* @return V2TIMSignalingInfo 信令信息,如果为 nil,则 msg 不是一条信令消息。
|
||||
*/
|
||||
- (V2TIMSignalingInfo *)getSignallingInfo:(V2TIMMessage *)msg;
|
||||
|
||||
/**
|
||||
* 添加邀请信令
|
||||
*
|
||||
* 主要用于邀请者在被邀请者离线期间,发送了群聊邀请,被邀请者上线后将该信令同步给 SDK,从而正常使用信令功能。
|
||||
*
|
||||
* 当被邀请者点击离线推送提示,拉起 App 时:
|
||||
* 1. 如果被邀请者离线期间,邀请者发送的是 1V1 信令,SDK 可以自动同步邀请信令。邀请未超时,回调 onReceiveNewInvitation。
|
||||
* 2. 如果被邀请者离线期间,邀请者发送的是群聊信令,不同 SDK 版本表现如下:
|
||||
* - 6.7 以前的版本:
|
||||
* SDK 无法自动同步邀请信令(信令本质上就是一条自定义消息,群离线消息在程序启动后无法自动同步)。
|
||||
* 如果被邀请者需要处理该邀请信令,可以让邀请者在发起信令时,向每个被邀请者额外发送一条 C2C 离线推送消息,消息携带 V2TIMSignalingInfo 信息。
|
||||
* 被邀请者收到离线推送时通过 addInvitedSignaling 将 V2TIMSignalingInfo 信息告知 SDK。
|
||||
* - 6.7 及以后的版本:
|
||||
* SDK 会自动同步最近 30 秒的消息。如果其中包含了未超时的邀请信令,回调 onReceiveNewInvitation。您无需再调用本接口同步邀请信令。
|
||||
*
|
||||
* @note 如果添加的信令信息已存在,fail callback 会抛 ERR_SDK_SIGNALING_ALREADY_EXISTS 错误码。
|
||||
*/
|
||||
- (void)addInvitedSignaling:(V2TIMSignalingInfo *)signallingInfo succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 修改邀请信令(6.7 及其以上版本支持)
|
||||
*
|
||||
* @note 仅支持修改邀请信令的自定义字段 data。只有在线用户才能收到的邀请信令不能被修改。
|
||||
*/
|
||||
- (void)modifyInvitation:(NSString *)inviteID data:(NSString *)data succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
@end
|
||||
|
||||
V2TIM_EXPORT @protocol V2TIMSignalingListener <NSObject>
|
||||
@optional
|
||||
/// 收到邀请的回调
|
||||
-(void)onReceiveNewInvitation:(NSString *)inviteID inviter:(NSString *)inviter groupID:(NSString *)groupID inviteeList:(NSArray<NSString *> *)inviteeList data:(NSString * __nullable)data;
|
||||
|
||||
/// 被邀请者接受邀请
|
||||
-(void)onInviteeAccepted:(NSString *)inviteID invitee:(NSString *)invitee data:(NSString * __nullable)data;
|
||||
|
||||
/// 被邀请者拒绝邀请
|
||||
-(void)onInviteeRejected:(NSString *)inviteID invitee:(NSString *)invitee data:(NSString * __nullable)data;
|
||||
|
||||
/// 邀请被取消
|
||||
-(void)onInvitationCancelled:(NSString *)inviteID inviter:(NSString *)inviter data:(NSString * __nullable)data;
|
||||
|
||||
/// 邀请超时
|
||||
-(void)onInvitationTimeout:(NSString *)inviteID inviteeList:(NSArray<NSString *> *)inviteeList;
|
||||
|
||||
/// 邀请被修改(6.7 及其以上版本支持)
|
||||
-(void)onInvitationModified:(NSString *)inviteID data:(NSString *)data;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
// 操作类型
|
||||
typedef NS_ENUM(NSInteger,SignalingActionType) {
|
||||
SignalingActionType_Invite = 1, // 邀请方发起邀请
|
||||
SignalingActionType_Cancel_Invite = 2, // 邀请方取消邀请
|
||||
SignalingActionType_Accept_Invite = 3, // 被邀请方接受邀请
|
||||
SignalingActionType_Reject_Invite = 4, // 被邀请方拒绝邀请
|
||||
SignalingActionType_Invite_Timeout = 5, // 邀请超时
|
||||
};
|
||||
|
||||
V2TIM_EXPORT @interface V2TIMSignalingInfo : NSObject
|
||||
@property(nonatomic,strong) NSString *inviteID;
|
||||
@property(nonatomic,strong) NSString *groupID;
|
||||
@property(nonatomic,strong) NSString *inviter;
|
||||
@property(nonatomic,strong) NSMutableArray *inviteeList;
|
||||
@property(nonatomic,strong) NSString * __nullable data;
|
||||
@property(nonatomic,assign) uint32_t timeout;
|
||||
@property(nonatomic,assign) SignalingActionType actionType;
|
||||
@end
|
||||
|
||||
41
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/Headers/V2TIMManager+VOIP.h
generated
Executable file
41
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/Headers/V2TIMManager+VOIP.h
generated
Executable file
@@ -0,0 +1,41 @@
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 腾讯云通信服务 IMSDK
|
||||
//
|
||||
// 模块名称:V2TIMManager+VOIP
|
||||
//
|
||||
// 消息 VoIP 推送接口
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
|
||||
#import "V2TIMManager.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@class V2TIMVOIPConfig;
|
||||
|
||||
V2TIM_EXPORT @interface V2TIMManager (VOIP)
|
||||
|
||||
/**
|
||||
* 1.1 设置 VoIP 推送
|
||||
*/
|
||||
- (void)setVOIP:(V2TIMVOIPConfig *)config succ:(V2TIMSucc __nullable)succ fail:(V2TIMFail __nullable)fail;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
V2TIM_EXPORT @interface V2TIMVOIPConfig : NSObject
|
||||
|
||||
/**
|
||||
* VoIP device token
|
||||
*/
|
||||
@property (nonatomic, strong, nullable) NSData *token;
|
||||
|
||||
/**
|
||||
* IM 控制台上传的 VoIP 证书 ID
|
||||
*/
|
||||
@property (nonatomic, assign) NSInteger certificateID;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
710
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/Headers/V2TIMManager.h
generated
Executable file
710
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/Headers/V2TIMManager.h
generated
Executable file
@@ -0,0 +1,710 @@
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 腾讯云通信服务 IMSDK
|
||||
//
|
||||
// 模块名称:V2TIMManager
|
||||
//
|
||||
// TIM SDK 2.0 版的接口,相比于 1.0 版本更加简洁易用,接入速度更快,高级特性接口详见:
|
||||
// - V2TIMManager+Message.h 消息相关的高级功能接口,比如图片消息,视频消息,消息撤回,消息已读等功能。
|
||||
// - V2TIMManager+APNS.h 推送相关的高级功能接口,主要用于开启消息推送功能。
|
||||
// - V2TIMManager+Conversation.h 会话相关的高级功能接口,一个会话对应一个聊天窗口。
|
||||
// - V2TIMManager+Group.h 群组相关的高级功能接口,比如邀请人进群,处理加群请求等功能。
|
||||
// - V2TIMManager+Friendship.h 关系链相关的高级功能接口,比如黑名单,好友列表等功能。
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef ImSDK_V2TIMManager_h
|
||||
#define ImSDK_V2TIMManager_h
|
||||
|
||||
#if defined(BUILD_V2TIM_SDK)
|
||||
#define V2TIM_EXPORT __attribute__((visibility("default")))
|
||||
#else
|
||||
#define V2TIM_EXPORT
|
||||
#endif
|
||||
|
||||
#if defined(__cplusplus)
|
||||
#define V2TIM_EXTERN extern "C" V2TIM_EXPORT
|
||||
#else
|
||||
#define V2TIM_EXTERN extern V2TIM_EXPORT
|
||||
#endif
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
@class V2TIMSDKConfig;
|
||||
@class V2TIMUserInfo;
|
||||
@class V2TIMUserFullInfo;
|
||||
@class V2TIMGroupMemberInfo;
|
||||
@class V2TIMGroupMemberFullInfo;
|
||||
@class V2TIMGroupChangeInfo;
|
||||
@class V2TIMGroupMemberChangeInfo;
|
||||
@class V2TIMUserReceiveMessageOptInfo;
|
||||
@class V2TIMTopicInfo;
|
||||
@class V2TIMUserStatus;
|
||||
|
||||
V2TIM_EXPORT @protocol V2TIMSDKListener;
|
||||
V2TIM_EXPORT @protocol V2TIMSimpleMsgListener;
|
||||
V2TIM_EXPORT @protocol V2TIMGroupListener;
|
||||
|
||||
V2TIM_EXTERN NSString *const GroupType_Work;
|
||||
V2TIM_EXTERN NSString *const GroupType_Public;
|
||||
V2TIM_EXTERN NSString *const GroupType_Meeting;
|
||||
V2TIM_EXTERN NSString *const GroupType_AVChatRoom;
|
||||
V2TIM_EXTERN NSString *const GroupType_Community;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// V2TIMManager
|
||||
//
|
||||
// IMSDK 主核心类,负责 IMSDK 的初始化、登录、消息收发,建群退群等功能
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
V2TIM_EXPORT @interface V2TIMManager : NSObject
|
||||
|
||||
/// 成功通用回调
|
||||
typedef void (^V2TIMSucc)(void);
|
||||
/// 失败通用回调
|
||||
typedef void (^V2TIMFail)(int code, NSString * desc);
|
||||
/// 创建群组成功回调
|
||||
typedef void (^V2TIMCreateGroupSucc)(NSString * groupID);
|
||||
/// 获取用户资料成功回调
|
||||
typedef void (^V2TIMUserFullInfoListSucc)(NSArray <V2TIMUserFullInfo *> * infoList);
|
||||
/// 实验性 API 接口成功回调
|
||||
typedef void (^V2TIMCallExperimentalAPISucc)(NSObject *result);
|
||||
/// 获取用户状态列表成功回调
|
||||
typedef void (^V2TIMUserStatusListSucc)(NSArray<V2TIMUserStatus *> *result);
|
||||
|
||||
/// 登录状态
|
||||
typedef NS_ENUM(NSInteger, V2TIMLoginStatus) {
|
||||
V2TIM_STATUS_LOGINED = 1, ///< 已登录
|
||||
V2TIM_STATUS_LOGINING = 2, ///< 登录中
|
||||
V2TIM_STATUS_LOGOUT = 3, ///< 无登录
|
||||
};
|
||||
|
||||
/// 日志级别
|
||||
typedef NS_ENUM(NSInteger, V2TIMLogLevel) {
|
||||
V2TIM_LOG_NONE = 0, ///< 不输出任何 sdk log
|
||||
V2TIM_LOG_DEBUG = 3, ///< 输出 DEBUG,INFO,WARNING,ERROR 级别的 log
|
||||
V2TIM_LOG_INFO = 4, ///< 输出 INFO,WARNING,ERROR 级别的 log
|
||||
V2TIM_LOG_WARN = 5, ///< 输出 WARNING,ERROR 级别的 log
|
||||
V2TIM_LOG_ERROR = 6, ///< 输出 ERROR 级别的 log
|
||||
};
|
||||
|
||||
/// 消息优先级
|
||||
typedef NS_ENUM(NSInteger, V2TIMMessagePriority) {
|
||||
V2TIM_PRIORITY_DEFAULT = 0, ///< 默认
|
||||
V2TIM_PRIORITY_HIGH = 1, ///< 高优先级,一般用于礼物等重要消息
|
||||
V2TIM_PRIORITY_NORMAL = 2, ///< 常规优先级,一般用于普通消息
|
||||
V2TIM_PRIORITY_LOW = 3, ///< 低优先级,一般用于点赞消息
|
||||
};
|
||||
|
||||
/// 性别
|
||||
typedef NS_ENUM(NSInteger, V2TIMGender) {
|
||||
V2TIM_GENDER_UNKNOWN = 0, ///< 未知性别
|
||||
V2TIM_GENDER_MALE = 1, ///< 男性
|
||||
V2TIM_GENDER_FEMALE = 2, ///< 女性
|
||||
};
|
||||
|
||||
/// 好友验证方式
|
||||
typedef NS_ENUM(NSInteger, V2TIMFriendAllowType) {
|
||||
V2TIM_FRIEND_ALLOW_ANY = 0, ///< 同意任何用户加好友
|
||||
V2TIM_FRIEND_NEED_CONFIRM = 1, ///< 需要验证
|
||||
V2TIM_FRIEND_DENY_ANY = 2, ///< 拒绝任何人加好友
|
||||
};
|
||||
|
||||
/// 群成员角色
|
||||
typedef NS_ENUM(NSInteger, V2TIMGroupMemberRole) {
|
||||
V2TIM_GROUP_MEMBER_UNDEFINED = 0, ///< 未定义(没有获取该字段)
|
||||
V2TIM_GROUP_MEMBER_ROLE_MEMBER = 200, ///< 群成员
|
||||
V2TIM_GROUP_MEMBER_ROLE_ADMIN = 300, ///< 群管理员
|
||||
V2TIM_GROUP_MEMBER_ROLE_SUPER = 400, ///< 群主
|
||||
};
|
||||
|
||||
/// 用户状态类型
|
||||
typedef NS_ENUM(NSInteger, V2TIMUserStatusType) {
|
||||
V2TIM_USER_STATUS_UNKNOWN = 0, ///< 未知状态
|
||||
V2TIM_USER_STATUS_ONLINE = 1, ///< 在线状态
|
||||
V2TIM_USER_STATUS_OFFLINE = 2, ///< 离线状态
|
||||
V2TIM_USER_STATUS_UNLOGINED = 3, ///< 未登录(如主动调用 logout 接口,或者账号注册后还未登录)
|
||||
};
|
||||
|
||||
/// 日志回调
|
||||
typedef void (^V2TIMLogListener)(V2TIMLogLevel logLevel, NSString * logContent);
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// 初始化
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 1.1 获取 V2TIMManager 管理器实例
|
||||
*/
|
||||
+ (V2TIMManager*)sharedInstance;
|
||||
|
||||
/**
|
||||
* 1.2 初始化 SDK
|
||||
*
|
||||
* @param sdkAppID 应用 ID,必填项,可以在 [控制台](https://console.cloud.tencent.com/im) 中获取
|
||||
* @param config 配置信息
|
||||
* @return YES:成功;NO:失败
|
||||
*/
|
||||
- (BOOL)initSDK:(int)sdkAppID config:(V2TIMSDKConfig*)config;
|
||||
|
||||
/**
|
||||
* 1.3 添加 IM 监听
|
||||
*/
|
||||
- (void)addIMSDKListener:(id<V2TIMSDKListener>)listener;
|
||||
|
||||
/**
|
||||
* 1.4 移除 IM 监听
|
||||
*/
|
||||
- (void)removeIMSDKListener:(id<V2TIMSDKListener>)listener;
|
||||
|
||||
/**
|
||||
* 1.5 反初始化 SDK
|
||||
*/
|
||||
- (void)unInitSDK;
|
||||
|
||||
/**
|
||||
* 1.6 获取版本号
|
||||
*
|
||||
* @return 返回版本号,字符串表示,例如 5.0.10
|
||||
*/
|
||||
- (NSString*)getVersion;
|
||||
|
||||
/**
|
||||
* 1.7 获取服务器时间戳
|
||||
*
|
||||
* @return 服务器时间时间戳,单位 s
|
||||
*/
|
||||
- (uint64_t)getServerTime;
|
||||
|
||||
/**
|
||||
* 初始化 SDK(待废弃接口,请使用 initSDK 和 addIMSDKListener 接口)
|
||||
*/
|
||||
- (BOOL)initSDK:(int)sdkAppID config:(V2TIMSDKConfig*)config listener:(id<V2TIMSDKListener>)listener __attribute__((deprecated("use initSDK:config: and addIMSDKListener: instead")));
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// 登录登出
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 2.1 登录
|
||||
*
|
||||
* 登录需要设置用户名 userID 和用户签名 userSig,userSig 生成请参考 [UserSig 后台 API](https://cloud.tencent.com/document/product/269/32688)。
|
||||
*
|
||||
* @note 请注意如下特殊逻辑:
|
||||
* - 登陆时票据过期:login 函数的 V2TIMFail 会返回 ERR_USER_SIG_EXPIRED(6206)或者 ERR_SVR_ACCOUNT_USERSIG_EXPIRED(70001) 错误码,此时请您生成新的 userSig 重新登录。
|
||||
* - 在线时票据过期:用户在线期间也可能收到 V2TIMSDKListener -> onUserSigExpired 回调,此时也是需要您生成新的 userSig 并重新登录。
|
||||
* - 在线时被踢下线:用户在线情况下被踢,SDK 会通过 V2TIMSDKListener -> onKickedOffline 回调通知给您,此时可以 UI 提示用户,并再次调用 login() 重新登录。
|
||||
* - 同平台多设备在线:该功能为IM旗舰版功能,购买[旗舰版套餐包](https://buy.cloud.tencent.com/avc?from=17487)后可使用,详见[价格说明](https://cloud.tencent.com/document/product/269/11673?from=17224#.E5.9F.BA.E7.A1.80.E6.9C.8D.E5.8A.A1.E8.AF.A6.E6.83.85)。
|
||||
*/
|
||||
- (void)login:(NSString *)userID userSig:(NSString *)userSig succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 2.2 登出
|
||||
*
|
||||
* 退出登录,如果切换账号,需要 logout 回调成功或者失败后才能再次 login,否则 login 可能会失败。
|
||||
*/
|
||||
- (void)logout:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 2.3 获取登录用户
|
||||
*/
|
||||
- (NSString *)getLoginUser;
|
||||
|
||||
/**
|
||||
* 2.4 获取登录状态
|
||||
*
|
||||
* 如果用户已经处于已登录和登录中状态,请勿再频繁调用登录接口登录。
|
||||
*/
|
||||
- (V2TIMLoginStatus)getLoginStatus;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// 消息收发
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 3.1 设置基本消息(文本消息和自定义消息)的事件监听器
|
||||
*
|
||||
* @note 图片消息、视频消息、语音消息等高级消息的监听,请参考 V2TIMManager+Message.h -> addAdvancedMsgListener 接口。
|
||||
*/
|
||||
- (void)addSimpleMsgListener:(id<V2TIMSimpleMsgListener>)listener NS_SWIFT_NAME(addSimpleMsgListener(listener:));
|
||||
|
||||
/**
|
||||
* 3.2 移除基本消息(文本消息和自定义消息)的事件监听器
|
||||
*/
|
||||
- (void)removeSimpleMsgListener:(id<V2TIMSimpleMsgListener>)listener NS_SWIFT_NAME(removeSimpleMsgListener(listener:));
|
||||
|
||||
/**
|
||||
* 3.3 发送单聊普通文本消息(最大支持 12KB)
|
||||
*
|
||||
* 文本消息支持云端的脏词过滤,如果用户发送的消息中有敏感词,V2TIMFail 回调将会返回 80001 错误码。
|
||||
* @return 返回消息的唯一标识 ID
|
||||
*
|
||||
* @note 该接口发送的消息默认会推送(前提是在 V2TIMManager+APNS.h 开启了推送),如果需要自定义推送(自定义推送声音,推送 Title 等),请调用 V2TIMManager+Message.h -> sendMessage 接口。
|
||||
*/
|
||||
- (NSString*)sendC2CTextMessage:(NSString *)text to:(NSString *)userID succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 3.4 发送单聊自定义(信令)消息(最大支持 12KB)
|
||||
*
|
||||
* 自定义消息本质就是一端二进制 buffer,您可以在其上自由组织自己的消息格式(常用于发送信令),但是自定义消息不支持云端敏感词过滤。
|
||||
* @return 返回消息的唯一标识 ID
|
||||
*
|
||||
* @note 该接口发送的消息默认不会推送,如果需要推送,请调用 V2TIMManager+Message.h -> sendMessage 接口。
|
||||
*/
|
||||
- (NSString*)sendC2CCustomMessage:(NSData *)customData to:(NSString *)userID succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 3.5 发送群聊普通文本消息(最大支持 12KB)
|
||||
*
|
||||
* @param priority 设置消息的优先级,我们没有办法所有消息都能 100% 送达每一个用户,但高优先级的消息会有更高的送达成功率。
|
||||
* - HIGH :云端会优先传输,适用于在群里发送重要消息,比如主播发送的文本消息等。
|
||||
* - NORMAL :云端按默认优先级传输,适用于在群里发送普通消息,比如观众发送的弹幕消息等。
|
||||
* @return 返回消息的唯一标识 ID
|
||||
*
|
||||
* @note 该接口发送的消息默认会推送(前提是在 V2TIMManager+APNS.h 开启了推送),如果需要自定义推送(自定义推送声音,推送 Title 等),请调用 V2TIMManager+Message.h -> sendMessage 接口。
|
||||
*/
|
||||
- (NSString*)sendGroupTextMessage:(NSString *)text to:(NSString *)groupID priority:(V2TIMMessagePriority)priority succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 3.6 发送群聊自定义(信令)消息(最大支持 12KB)
|
||||
*
|
||||
* @param priority 设置消息的优先级,我们没有办法所有消息都能 100% 送达每一个用户,但高优先级的消息会有更高的送达成功率。
|
||||
* - HIGH :云端会优先传输,适用于在群里发送重要信令,比如连麦邀请,PK邀请、礼物赠送等关键性信令。
|
||||
* - NORMAL :云端按默认优先级传输,适用于在群里发送非重要信令,比如观众的点赞提醒等等。
|
||||
* @return 返回消息的唯一标识 ID
|
||||
*
|
||||
* @note 该接口发送的消息默认不会推送,如果需要推送,请调用 V2TIMManager+Message.h -> sendMessage 接口。
|
||||
*/
|
||||
- (NSString*)sendGroupCustomMessage:(NSData *)customData to:(NSString *)groupID priority:(V2TIMMessagePriority)priority succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
// 3.7 更多功能,详见 V2TIMManager+Message.h
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// 群相关操作
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 4.1 设置群组监听器
|
||||
*/
|
||||
- (void)addGroupListener:(id<V2TIMGroupListener>)listener NS_SWIFT_NAME(addGroupListener(listener:));
|
||||
|
||||
/**
|
||||
* 4.2 设置群组监听器
|
||||
*/
|
||||
- (void)removeGroupListener:(id<V2TIMGroupListener>)listener NS_SWIFT_NAME(removeGroupListener(listener:));
|
||||
|
||||
/**
|
||||
* 4.3 创建群组
|
||||
*
|
||||
* @param groupType 群类型,我们为您预定义好了几种常用的群类型,您也可以在控制台定义自己需要的群类型:
|
||||
* - "Work" :工作群,成员上限 200 人,不支持由用户主动加入,需要他人邀请入群,适合用于类似微信中随意组建的工作群(对应老版本的 Private 群)。
|
||||
* - "Public" :公开群,成员上限 2000 人,任何人都可以申请加群,但加群需群主或管理员审批,适合用于类似 QQ 中由群主管理的兴趣群。
|
||||
* - "Meeting" :会议群,成员上限 6000 人,任何人都可以自由进出,且加群无需被审批,适合用于视频会议和在线培训等场景(对应老版本的 ChatRoom 群)。
|
||||
* - "Community" :社群,成员上限 100000 人,任何人都可以自由进出,且加群无需被审批,适合用于知识分享和游戏交流等超大社区群聊场景。5.8 版本开始支持,需要您购买旗舰版套餐。
|
||||
* - "AVChatRoom" :直播群,人数无上限,任何人都可以自由进出,消息吞吐量大,适合用作直播场景中的高并发弹幕聊天室。
|
||||
*
|
||||
* @param groupID 自定义群组 ID,可以传 nil。传 nil 时系统会自动分配 groupID,并通过 succ 回调返回。
|
||||
* "Community" 类型自定义群组 ID 必须以 "@TGS#_" 作为前缀。
|
||||
* @param groupName 群名称,不能为 nil,最长30字节
|
||||
*
|
||||
* @note 请注意如下特殊逻辑:
|
||||
* - 不支持在同一个 SDKAPPID 下创建两个相同 groupID 的群。
|
||||
* - 社群(Community)功能仅 5.8.1668 增强版及以上版本支持,需[购买旗舰版套餐包](https://buy.cloud.tencent.com/avc?from=17213)并[申请开通](https://cloud.tencent.com/document/product/269/3916?from=17215)后方可使用。
|
||||
* - 直播群(AVChatRoom):在进程重启或重新登录之后,如果想继续接收直播群的消息,请您调用 joinGroup 重新加入直播群。
|
||||
*/
|
||||
- (void)createGroup:(NSString *)groupType groupID:(NSString*)groupID groupName:(NSString *)groupName succ:(V2TIMCreateGroupSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 4.4 加入群组
|
||||
*
|
||||
* @note 请注意如下特殊逻辑:
|
||||
* - 工作群(Work):不能主动入群,只能通过群成员调用 V2TIMManager+Group.h -> inviteUserToGroup 接口邀请入群。
|
||||
* - 公开群(Public):申请入群后,需要管理员审批,管理员在收到 V2TIMGroupListener -> onReceiveJoinApplication 回调后调用 V2TIMManager+Group.h -> getGroupApplicationList 接口处理加群请求。
|
||||
* - 其他群:可以直接入群。
|
||||
* - 直播群(AVChatRoom):在进程重启或重新登录之后,如果想继续接收直播群的消息,请您调用 joinGroup 重新加入直播群。
|
||||
* - 直播群(AVChatRoom):直播群新成员可以查看入群前消息,该功能为 IM 旗舰版功能,[购买旗舰版套餐包](https://buy.cloud.tencent.com/avc?from=17484)后可使用,详见[价格说明](https://cloud.tencent.com/document/product/269/11673?from=17179#.E5.9F.BA.E7.A1.80.E6.9C.8D.E5.8A.A1.E8.AF.A6.E6.83.85)
|
||||
*/
|
||||
- (void)joinGroup:(NSString*)groupID msg:(NSString*)msg succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 4.5 退出群组
|
||||
*
|
||||
* @note 在公开群(Public)、会议(Meeting)和直播群(AVChatRoom)中,群主是不可以退群的,群主只能调用 dismissGroup 解散群组。
|
||||
*/
|
||||
- (void)quitGroup:(NSString*)groupID succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 4.6 解散群组
|
||||
*
|
||||
* @note 请注意如下特殊逻辑:
|
||||
* - 好友工作群(Work)的解散最为严格,即使群主也不能随意解散,只能由您的业务服务器调用 [解散群组 REST API](https://cloud.tencent.com/document/product/269/1624) 解散。
|
||||
* - 其他类型群的群主可以解散群组。
|
||||
*/
|
||||
- (void)dismissGroup:(NSString*)groupID succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
// 4.7 更多功能,详见 V2TIMManager+Group.h
|
||||
|
||||
/**
|
||||
* 设置群组监听器(待废弃接口,请使用 addGroupListener 和 removeGroupListener 接口)
|
||||
*/
|
||||
- (void)setGroupListener:(id<V2TIMGroupListener>)listener __attribute__((deprecated("use addGroupListener: instead")));
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// 资料相关操作
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 5.1 获取用户资料
|
||||
* @note 请注意:
|
||||
* - 获取自己的资料,传入自己的 ID 即可。
|
||||
* - userIDList 建议一次最大 100 个,因为数量过多可能会导致数据包太大被后台拒绝,后台限制数据包最大为 1M。
|
||||
*/
|
||||
- (void)getUsersInfo:(NSArray<NSString *> *)userIDList succ:(V2TIMUserFullInfoListSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 5.2 修改个人资料
|
||||
*/
|
||||
- (void)setSelfInfo:(V2TIMUserFullInfo *)Info succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 5.3 查询用户状态,从 6.3 版本开始支持
|
||||
*
|
||||
* @param userIDList 需要获取的用户 ID
|
||||
*
|
||||
* @note 请注意:
|
||||
* - 如果您想查询自己的自定义状态,您只需要传入自己的 userID 即可
|
||||
* - 当您批量查询时,接口只会返回查询成功的用户状态信息;当所有用户均查询失败时,接口会报错
|
||||
* - 查询其他用户状态为 IM 旗舰版功能,[购买旗舰版套餐包](https://buy.cloud.tencent.com/avc?from=17491)后可使用,详见[价格说明](https://cloud.tencent.com/document/product/269/11673?from=17472#.E5.9F.BA.E7.A1.80.E6.9C.8D.E5.8A.A1.E8.AF.A6.E6.83.85)。
|
||||
*/
|
||||
- (void)getUserStatus:(NSArray *)userIDList succ:(V2TIMUserStatusListSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 5.4 设置自己的状态,从 6.3 版本开始支持
|
||||
*
|
||||
* @param status 待设置的自定义状态
|
||||
*
|
||||
* @note 请注意,该接口只支持设置自己的自定义状态,即 V2TIMUserStatus.customStatus
|
||||
*/
|
||||
- (void)setSelfStatus:(V2TIMUserStatus *)status succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 5.5 订阅用户状态,从 6.3 版本开始支持
|
||||
*
|
||||
* @param userIDList 待订阅的用户 ID
|
||||
*
|
||||
* @note 请注意
|
||||
* - 当成功订阅用户状态后,当对方的状态(包含在线状态、自定义状态)发生变更后,您可以监听 @onUserStatusChanged 回调来感知
|
||||
* - 如果您需要订阅好友列表的状态,您只需要在控制台上打开开关即可,无需调用该接口
|
||||
* - 该接口不支持订阅自己,您可以通过监听 @onUserStatusChanged 回调来感知自身的自定义状态的变更
|
||||
* - 订阅列表有个数限制,超过限制后,会自动淘汰最先订阅的用户
|
||||
* - 该功能为 IM 旗舰版功能,[购买旗舰版套餐包](https://buy.cloud.tencent.com/avc?from=17491)后可使用,详见[价格说明](https://cloud.tencent.com/document/product/269/11673?from=17472#.E5.9F.BA.E7.A1.80.E6.9C.8D.E5.8A.A1.E8.AF.A6.E6.83.85)。
|
||||
*/
|
||||
- (void)subscribeUserStatus:(NSArray *)userIDList succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
/**
|
||||
* 5.6 取消订阅用户状态,从 6.3 版本开始支持
|
||||
*
|
||||
* @note
|
||||
* - 当 userIDList 为空或者 nil 时,取消当前所有的订阅
|
||||
* - 该功能为 IM 旗舰版功能,[购买旗舰版套餐包](https://buy.cloud.tencent.com/avc?from=17491)后可使用,详见[价格说明](https://cloud.tencent.com/document/product/269/11673?from=17472#.E5.9F.BA.E7.A1.80.E6.9C.8D.E5.8A.A1.E8.AF.A6.E6.83.85)。
|
||||
*/
|
||||
- (void)unsubscribeUserStatus:(NSArray *)userIDList succ:(V2TIMSucc)succ fail:(V2TIMFail)fail;
|
||||
|
||||
// 5.7 更多功能,详见 V2TIMManager+Friendship.h
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// 扩展接口
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 6.1 实验性 API 接口
|
||||
*
|
||||
* @param api 接口名称
|
||||
* @param param 接口参数
|
||||
*
|
||||
* @note 该接口提供一些实验性功能
|
||||
*/
|
||||
- (void)callExperimentalAPI:(NSString *)api
|
||||
param:(NSObject *)param
|
||||
succ:(V2TIMCallExperimentalAPISucc)succ
|
||||
fail:(V2TIMFail)fail;
|
||||
@end
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// IMSDK 主核心回调,帮助您时刻关注 IMSDK 的在线状态
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/// IMSDK 主核心回调
|
||||
V2TIM_EXPORT @protocol V2TIMSDKListener <NSObject>
|
||||
@optional
|
||||
/// SDK 正在连接到服务器
|
||||
- (void)onConnecting;
|
||||
|
||||
/// SDK 已经成功连接到服务器
|
||||
- (void)onConnectSuccess;
|
||||
|
||||
/// SDK 连接服务器失败
|
||||
- (void)onConnectFailed:(int)code err:(NSString*)err;
|
||||
|
||||
/// 当前用户被踢下线,此时可以 UI 提示用户,并再次调用 V2TIMManager 的 login() 函数重新登录。
|
||||
- (void)onKickedOffline;
|
||||
|
||||
/// 在线时票据过期:此时您需要生成新的 userSig 并再次调用 V2TIMManager 的 login() 函数重新登录。
|
||||
- (void)onUserSigExpired;
|
||||
|
||||
/// 当前用户的资料发生了更新
|
||||
- (void)onSelfInfoUpdated:(V2TIMUserFullInfo *)Info;
|
||||
|
||||
/**
|
||||
* 用户状态变更通知
|
||||
*
|
||||
* @note 收到通知的情况:
|
||||
* 1. 订阅过的用户发生了状态变更(包括在线状态和自定义状态),会触发该回调
|
||||
* 2. 在 IM 控制台打开了好友状态通知开关,即使未主动订阅,当好友状态发生变更时,也会触发该回调
|
||||
* 3. 同一个账号多设备登录,当其中一台设备修改了自定义状态,所有设备都会收到该回调
|
||||
*/
|
||||
- (void)onUserStatusChanged:(NSArray<V2TIMUserStatus *> *)userStatusList;
|
||||
@end
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// IMSDK 基本消息回调 (高级消息请参考 V2TIMManager+Message.h -> V2TIMAdvancedMsgListener)
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/// IMSDK 基本消息回调
|
||||
V2TIM_EXPORT @protocol V2TIMSimpleMsgListener <NSObject>
|
||||
@optional
|
||||
|
||||
/// 收到 C2C 文本消息
|
||||
- (void)onRecvC2CTextMessage:(NSString *)msgID sender:(V2TIMUserInfo *)info text:(NSString *)text;
|
||||
|
||||
/// 收到 C2C 自定义(信令)消息
|
||||
- (void)onRecvC2CCustomMessage:(NSString *)msgID sender:(V2TIMUserInfo *)info customData:(NSData *)data;
|
||||
|
||||
/// 收到群文本消息
|
||||
- (void)onRecvGroupTextMessage:(NSString *)msgID groupID:(NSString *)groupID sender:(V2TIMGroupMemberInfo *)info text:(NSString *)text;
|
||||
|
||||
/// 收到群自定义(信令)消息
|
||||
- (void)onRecvGroupCustomMessage:(NSString *)msgID groupID:(NSString *)groupID sender:(V2TIMGroupMemberInfo *)info customData:(NSData *)data;
|
||||
@end
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// IMSDK 群组事件回调
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/// IMSDK 群组事件回调
|
||||
V2TIM_EXPORT @protocol V2TIMGroupListener <NSObject>
|
||||
@optional
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// 群成员相关通知
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/// 有新成员加入群(该群所有的成员都能收到)
|
||||
/// 会议群(Meeting)默认无此回调,如需回调,请前往 [控制台](https://console.cloud.tencent.com/im) (功能配置 -> 群组配置 -> 群系统通知配置 -> 群成员变更通知) 主动配置。
|
||||
- (void)onMemberEnter:(NSString *)groupID memberList:(NSArray<V2TIMGroupMemberInfo *>*)memberList;
|
||||
|
||||
/// 有成员离开群(该群所有的成员都能收到)
|
||||
/// 会议群(Meeting)默认无此回调,如需回调,请前往 [控制台](https://console.cloud.tencent.com/im) (功能配置 -> 群组配置 -> 群系统通知配置 -> 群成员变更通知) 主动配置。
|
||||
- (void)onMemberLeave:(NSString *)groupID member:(V2TIMGroupMemberInfo *)member;
|
||||
|
||||
/// 某成员被拉入某群(该群所有的成员都能收到)
|
||||
- (void)onMemberInvited:(NSString *)groupID opUser:(V2TIMGroupMemberInfo *)opUser memberList:(NSArray<V2TIMGroupMemberInfo *>*)memberList;
|
||||
|
||||
/// 有成员被踢出某群(该群所有的成员都能收到)
|
||||
- (void)onMemberKicked:(NSString *)groupID opUser:(V2TIMGroupMemberInfo *)opUser memberList:(NSArray<V2TIMGroupMemberInfo *>*)memberList;
|
||||
|
||||
/// 某成员信息发生变更(该群所有的成员都能收到)
|
||||
/// 会议群(Meeting)和直播群(AVChatRoom)默认无此回调,如需回调,请前往 [控制台](https://console.cloud.tencent.com/im) (功能配置 -> 群组配置 -> 群系统通知配置 -> 群成员资料变更通知) 主动配置。
|
||||
- (void)onMemberInfoChanged:(NSString *)groupID changeInfoList:(NSArray <V2TIMGroupMemberChangeInfo *> *)changeInfoList;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// 群生命周期相关通知
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/// 有新的群创建(创建者能收到,应用于多端消息同步的场景)
|
||||
- (void)onGroupCreated:(NSString *)groupID;
|
||||
|
||||
/// 某个已加入的群被解散了(该群所有的成员都能收到)
|
||||
- (void)onGroupDismissed:(NSString *)groupID opUser:(V2TIMGroupMemberInfo *)opUser;
|
||||
|
||||
/// 某个已加入的群被回收了(该群所有的成员都能收到)
|
||||
- (void)onGroupRecycled:(NSString *)groupID opUser:(V2TIMGroupMemberInfo *)opUser;
|
||||
|
||||
/// 某个已加入的群的信息被修改了(该群所有的成员都能收到)
|
||||
/// 以下字段的修改可能会引发该通知 groupName & introduction & notification & faceUrl & owner & allMute & custom
|
||||
/// 控制指定字段 下发通知/存漫游 请前往 [控制台](https://console.cloud.tencent.com/im) (功能配置 -> 群组配置 -> 群系统通知配置 -> 群资料变更通知) 主动配置。
|
||||
- (void)onGroupInfoChanged:(NSString *)groupID changeInfoList:(NSArray <V2TIMGroupChangeInfo *> *)changeInfoList;
|
||||
|
||||
/// 某个已加入的群的属性被修改了,会返回所在群组的所有属性(该群所有的成员都能收到)
|
||||
- (void)onGroupAttributeChanged:(NSString *)groupID attributes:(NSMutableDictionary<NSString *,NSString *> *)attributes;
|
||||
|
||||
/// 某个已加入的群的计数器被修改了,会返回当前变更的群计数器(该群所有的成员都能收到)
|
||||
- (void)onGroupCounterChanged:(NSString *)groupID key:(NSString *)key newValue:(NSInteger)newValue;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// 加群申请相关通知
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/// 有新的加群请求(只有群主和管理员会收到)
|
||||
- (void)onReceiveJoinApplication:(NSString *)groupID member:(V2TIMGroupMemberInfo *)member opReason:(NSString *)opReason;
|
||||
|
||||
/// 加群请求已经被群主或管理员处理了(只有申请人能够收到)
|
||||
- (void)onApplicationProcessed:(NSString *)groupID opUser:(V2TIMGroupMemberInfo *)opUser opResult:(BOOL)isAgreeJoin opReason:(NSString *)opReason;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// 其他相关通知
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/// 指定管理员身份
|
||||
- (void)onGrantAdministrator:(NSString *)groupID opUser:(V2TIMGroupMemberInfo *)opUser memberList:(NSArray <V2TIMGroupMemberInfo *> *)memberList;
|
||||
|
||||
/// 取消管理员身份
|
||||
- (void)onRevokeAdministrator:(NSString *)groupID opUser:(V2TIMGroupMemberInfo *)opUser memberList:(NSArray <V2TIMGroupMemberInfo *> *)memberList;
|
||||
|
||||
/// 自己主动退出群组(主要用于多端同步,直播群(AVChatRoom)不支持)
|
||||
- (void)onQuitFromGroup:(NSString *)groupID;
|
||||
|
||||
/// 收到 RESTAPI 下发的自定义系统消息
|
||||
- (void)onReceiveRESTCustomData:(NSString *)groupID data:(NSData *)data;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// 话题事件监听回调
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/// 话题创建回调
|
||||
- (void)onTopicCreated:(NSString *)groupID topicID:(NSString *)topicID;
|
||||
|
||||
/// 话题被删除回调
|
||||
- (void)onTopicDeleted:(NSString *)groupID topicIDList:(NSArray<NSString *> *)topicIDList;
|
||||
|
||||
/// 话题更新回调
|
||||
- (void)onTopicChanged:(NSString *)groupID topicInfo:(V2TIMTopicInfo *)topicInfo;
|
||||
|
||||
@end
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 用户资料
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/// 用户基本资料
|
||||
V2TIM_EXPORT @interface V2TIMUserInfo : NSObject
|
||||
/// 用户 ID
|
||||
@property(nonatomic,strong,readonly) NSString* userID;
|
||||
|
||||
/// 用户昵称
|
||||
@property(nonatomic,strong) NSString* nickName;
|
||||
|
||||
/// 用户头像
|
||||
@property(nonatomic,strong) NSString* faceURL;
|
||||
@end
|
||||
|
||||
/// 用户详细资料
|
||||
V2TIM_EXPORT @interface V2TIMUserFullInfo : V2TIMUserInfo
|
||||
|
||||
/// 用户签名
|
||||
@property(nonatomic,strong) NSString *selfSignature;
|
||||
|
||||
/// 用户性别
|
||||
@property(nonatomic,assign) V2TIMGender gender;
|
||||
|
||||
/// 用户角色
|
||||
@property(nonatomic,assign) uint32_t role;
|
||||
|
||||
/// 用户等级
|
||||
@property(nonatomic,assign) uint32_t level;
|
||||
|
||||
/// 出生日期
|
||||
@property(nonatomic,assign) uint32_t birthday;
|
||||
|
||||
/// 用户好友验证方式
|
||||
@property(nonatomic,assign) V2TIMFriendAllowType allowType;
|
||||
|
||||
/// 用户自定义字段
|
||||
/// 首先要在 [控制台](https://console.cloud.tencent.com/im) (功能配置 -> 用户自定义字段) 配置用户自定义字段,然后再调用该接口进行设置,key 值不需要加 Tag_Profile_Custom_ 前缀。
|
||||
@property(nonatomic,strong) NSDictionary<NSString *,NSData *> * customInfo;
|
||||
|
||||
@end
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 用户状态
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
V2TIM_EXPORT @interface V2TIMUserStatus : NSObject
|
||||
|
||||
/// 用户的 ID
|
||||
@property (nonatomic, copy, readonly) NSString *userID;
|
||||
|
||||
/// 用户的状态
|
||||
@property (nonatomic, assign, readonly) V2TIMUserStatusType statusType;
|
||||
|
||||
/// 用户的自定义状态, 最大 50 字节
|
||||
@property (nonatomic, copy) NSString *customStatus;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 群成员资料
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/// 群成员基本资料
|
||||
V2TIM_EXPORT @interface V2TIMGroupMemberInfo : NSObject
|
||||
/// 用户 ID
|
||||
@property(nonatomic,strong) NSString* userID;
|
||||
|
||||
/// 用户昵称
|
||||
@property(nonatomic,strong,readonly) NSString* nickName;
|
||||
|
||||
/// 用户好友备注
|
||||
@property(nonatomic,strong,readonly) NSString* friendRemark;
|
||||
|
||||
/// 群成员名片
|
||||
@property(nonatomic,strong) NSString* nameCard;
|
||||
|
||||
/// 用户头像
|
||||
@property(nonatomic,strong,readonly) NSString* faceURL;
|
||||
|
||||
@end
|
||||
|
||||
/// 群成员详细资料
|
||||
V2TIM_EXPORT @interface V2TIMGroupMemberFullInfo : V2TIMGroupMemberInfo
|
||||
/// 群成员自定义字段
|
||||
/// 首先要在 [控制台](https://console.cloud.tencent.com/im) (功能配置 -> 群成员自定义字段) 配置用户自定义字段,然后再调用该接口进行设置。
|
||||
@property(nonatomic,strong) NSDictionary<NSString *,NSData *> * customInfo;
|
||||
|
||||
/// 群成员角色(V2TIMGroupMemberRole),修改群成员角色请调用 V2TIMManager+Group.h -> setGroupMemberRole 接口
|
||||
@property(nonatomic,assign,readonly) uint32_t role;
|
||||
|
||||
/// 群成员禁言结束时间戳,禁言用户请调用 V2TIMManager+Group.h -> muteGroupMember 接口
|
||||
@property(nonatomic,assign,readonly) uint32_t muteUntil;
|
||||
|
||||
/// 群成员入群时间,自动生成,不可修改
|
||||
@property(nonatomic,assign,readonly) time_t joinTime;
|
||||
|
||||
@end
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// SDK 配置参数表
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
V2TIM_EXPORT @interface V2TIMSDKConfig : NSObject
|
||||
|
||||
/// 本地写 log 文件的等级,默认 DEBUG 等级, IMSDK 的日志默认存储于 /Library/Caches/ 目录下
|
||||
@property(nonatomic,assign) V2TIMLogLevel logLevel;
|
||||
|
||||
/// log 监听回调(回调在主线程,日志回调可能比较频繁,请注意不要在回调里面同步处理太多耗时任务,可能会堵塞主线程)
|
||||
@property(nonatomic,copy) V2TIMLogListener logListener;
|
||||
|
||||
@end
|
||||
|
||||
#endif
|
||||
BIN
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/ImSDK_Plus
generated
Executable file
BIN
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/ImSDK_Plus
generated
Executable file
Binary file not shown.
BIN
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/Info.plist
generated
Executable file
BIN
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/Info.plist
generated
Executable file
Binary file not shown.
6
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/Modules/module.modulemap
generated
Executable file
6
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/Modules/module.modulemap
generated
Executable file
@@ -0,0 +1,6 @@
|
||||
framework module ImSDK_Plus {
|
||||
umbrella header "ImSDK_Plus.h"
|
||||
|
||||
export *
|
||||
module * { export * }
|
||||
}
|
||||
25
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/ImSDKForMac_CPP.h
generated
Executable file
25
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/ImSDKForMac_CPP.h
generated
Executable file
@@ -0,0 +1,25 @@
|
||||
// Copyright (c) 2021 Tencent. All rights reserved.
|
||||
|
||||
#ifndef TIM_IM_SDK_FOR_MAC_CPP_H_
|
||||
#define TIM_IM_SDK_FOR_MAC_CPP_H_
|
||||
|
||||
#import "V2TIMBuffer.h"
|
||||
#import "V2TIMCallback.h"
|
||||
#import "V2TIMCommon.h"
|
||||
#import "V2TIMConversation.h"
|
||||
#import "V2TIMConversationManager.h"
|
||||
#import "V2TIMDefine.h"
|
||||
#import "V2TIMErrorCode.h"
|
||||
#import "V2TIMFriendship.h"
|
||||
#import "V2TIMFriendshipManager.h"
|
||||
#import "V2TIMGroup.h"
|
||||
#import "V2TIMGroupManager.h"
|
||||
#import "V2TIMListener.h"
|
||||
#import "V2TIMManagerEx.h"
|
||||
#import "V2TIMMessage.h"
|
||||
#import "V2TIMMessageManager.h"
|
||||
#import "V2TIMSignaling.h"
|
||||
#import "V2TIMSignalingManager.h"
|
||||
#import "V2TIMString.h"
|
||||
|
||||
#endif
|
||||
25
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/ImSDK_CPP.h
generated
Executable file
25
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/ImSDK_CPP.h
generated
Executable file
@@ -0,0 +1,25 @@
|
||||
// Copyright (c) 2021 Tencent. All rights reserved.
|
||||
|
||||
#ifndef TIM_IM_SDK_CPP_H_
|
||||
#define TIM_IM_SDK_CPP_H_
|
||||
|
||||
#import "V2TIMBuffer.h"
|
||||
#import "V2TIMCallback.h"
|
||||
#import "V2TIMCommon.h"
|
||||
#import "V2TIMConversation.h"
|
||||
#import "V2TIMConversationManager.h"
|
||||
#import "V2TIMDefine.h"
|
||||
#import "V2TIMErrorCode.h"
|
||||
#import "V2TIMFriendship.h"
|
||||
#import "V2TIMFriendshipManager.h"
|
||||
#import "V2TIMGroup.h"
|
||||
#import "V2TIMGroupManager.h"
|
||||
#import "V2TIMListener.h"
|
||||
#import "V2TIMManagerEx.h"
|
||||
#import "V2TIMMessage.h"
|
||||
#import "V2TIMMessageManager.h"
|
||||
#import "V2TIMSignaling.h"
|
||||
#import "V2TIMSignalingManager.h"
|
||||
#import "V2TIMString.h"
|
||||
|
||||
#endif
|
||||
31
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMBuffer.h
generated
Executable file
31
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMBuffer.h
generated
Executable file
@@ -0,0 +1,31 @@
|
||||
// Copyright (c) 2021 Tencent. All rights reserved.
|
||||
|
||||
#ifndef __V2TIM_BUFFER_H__
|
||||
#define __V2TIM_BUFFER_H__
|
||||
|
||||
#include "V2TIMDefine.h"
|
||||
|
||||
#include <cstddef>
|
||||
|
||||
class TIM_API V2TIMBuffer {
|
||||
public:
|
||||
V2TIMBuffer();
|
||||
|
||||
V2TIMBuffer(const V2TIMBuffer &buffer);
|
||||
|
||||
V2TIMBuffer(const uint8_t *data, size_t size);
|
||||
|
||||
virtual ~V2TIMBuffer();
|
||||
|
||||
const uint8_t *Data() const;
|
||||
|
||||
size_t Size() const;
|
||||
|
||||
V2TIMBuffer &operator=(const V2TIMBuffer &buffer);
|
||||
|
||||
private:
|
||||
uint8_t *buffer_;
|
||||
size_t length_;
|
||||
};
|
||||
|
||||
#endif /* __V2TIM_BUFFER_H__ */
|
||||
130
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMCallback.h
generated
Executable file
130
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMCallback.h
generated
Executable file
@@ -0,0 +1,130 @@
|
||||
// Copyright (c) 2021 Tencent. All rights reserved.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// IMSDK API 回调类
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __V2TIM_CALLBACK_H__
|
||||
#define __V2TIM_CALLBACK_H__
|
||||
|
||||
#include "V2TIMDefine.h"
|
||||
#include "V2TIMString.h"
|
||||
#include "V2TIMMessage.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 回调基类
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class TIM_API V2TIMBaseCallback {
|
||||
public:
|
||||
V2TIMBaseCallback();
|
||||
virtual ~V2TIMBaseCallback();
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 普通回调类
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class V2TIMCallback : public V2TIMBaseCallback {
|
||||
public:
|
||||
~V2TIMCallback() override {}
|
||||
|
||||
/**
|
||||
* 成功时回调,不带参数
|
||||
*/
|
||||
virtual void OnSuccess() = 0;
|
||||
|
||||
/**
|
||||
* 出错时回调
|
||||
*
|
||||
* @param error_code 错误码,详细描述请参见错误码表
|
||||
* @param error_message 错误描述
|
||||
*/
|
||||
virtual void OnError(int error_code, const V2TIMString &error_message) = 0;
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 模版回调类
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
template <class T>
|
||||
class V2TIMValueCallback : public V2TIMBaseCallback {
|
||||
public:
|
||||
~V2TIMValueCallback() override {}
|
||||
|
||||
/**
|
||||
* 成功时回调,带上 T 类型的参数
|
||||
*/
|
||||
virtual void OnSuccess(const T &value) = 0;
|
||||
|
||||
/**
|
||||
* 出错时回调
|
||||
*
|
||||
* @param error_code 错误码,详细描述请参见错误码表
|
||||
* @param error_message 错误描述
|
||||
*/
|
||||
virtual void OnError(int error_code, const V2TIMString &error_message) = 0;
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 下载回调类 - 继承自 V2TIMCallback 类
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class V2TIMDownloadCallback : public V2TIMCallback {
|
||||
public:
|
||||
~V2TIMDownloadCallback() override {}
|
||||
|
||||
/**
|
||||
* 文件下载进度回调
|
||||
*
|
||||
* @note 在下载结束时,触发 OnSuccess 或者 OnError 函数
|
||||
*/
|
||||
virtual void OnDownLoadProgress(uint64_t currentSize, uint64_t totalSize) = 0;
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 发送消息的回调类
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class V2TIMSendCallback : public V2TIMValueCallback<V2TIMMessage> {
|
||||
public:
|
||||
~V2TIMSendCallback() override {}
|
||||
|
||||
/**
|
||||
* 文件上传进度回调,取值 0 -100
|
||||
*
|
||||
* @note 在发送结束时,触发 OnSuccess 或者 OnError 函数
|
||||
*/
|
||||
virtual void OnProgress(uint32_t progress) = 0;
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 操作完成的回调类
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
template <class T>
|
||||
class V2TIMCompleteCallback : public V2TIMBaseCallback {
|
||||
public:
|
||||
~V2TIMCompleteCallback() override {}
|
||||
|
||||
/**
|
||||
* 操作完成的回调
|
||||
*/
|
||||
virtual void OnComplete(int error_code, const V2TIMString &error_message, const T &value) = 0;
|
||||
};
|
||||
|
||||
#endif /* __V2TIM_CALLBACK_H__ */
|
||||
102
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMCommon.h
generated
Executable file
102
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMCommon.h
generated
Executable file
@@ -0,0 +1,102 @@
|
||||
// Copyright (c) 2021 Tencent. All rights reserved.
|
||||
|
||||
#ifndef __V2TIM_COMMON_H__
|
||||
#define __V2TIM_COMMON_H__
|
||||
|
||||
#include "V2TIMBuffer.h"
|
||||
#include "V2TIMDefine.h"
|
||||
#include "V2TIMString.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// (一)枚举值定义
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/// 登录状态
|
||||
enum V2TIMLoginStatus {
|
||||
/// 已登录
|
||||
V2TIM_STATUS_LOGINED = 1,
|
||||
/// 登录中
|
||||
V2TIM_STATUS_LOGINING = 2,
|
||||
/// 无登录
|
||||
V2TIM_STATUS_LOGOUT = 3,
|
||||
};
|
||||
|
||||
/// 日志级别
|
||||
enum V2TIMLogLevel {
|
||||
/// 不输出任何 sdk log
|
||||
V2TIM_LOG_NONE = 0,
|
||||
/// 输出 DEBUG,INFO,WARNING,ERROR 级别的 log
|
||||
V2TIM_LOG_DEBUG = 3,
|
||||
/// 输出 INFO,WARNING,ERROR 级别的 log
|
||||
V2TIM_LOG_INFO = 4,
|
||||
/// 输出 WARNING,ERROR 级别的 log
|
||||
V2TIM_LOG_WARN = 5,
|
||||
/// 输出 ERROR 级别的 log
|
||||
V2TIM_LOG_ERROR = 6,
|
||||
};
|
||||
|
||||
/// 消息接收选项
|
||||
enum V2TIMReceiveMessageOpt {
|
||||
///< 在线正常接收消息,离线时会进行 APNs 推送
|
||||
V2TIM_RECEIVE_MESSAGE = 0,
|
||||
///< 不会接收到消息,离线不会有推送通知
|
||||
V2TIM_NOT_RECEIVE_MESSAGE = 1,
|
||||
///< 在线正常接收消息,离线不会有推送通知
|
||||
V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE = 2,
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// (二)对象类型定义
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
typedef uint64_t V2TIMUInt64;
|
||||
DEFINE_VECTOR(V2TIMUInt64)
|
||||
typedef TXV2TIMUInt64Vector V2TIMUInt64Vector;
|
||||
|
||||
DEFINE_VECTOR(V2TIMString)
|
||||
typedef TXV2TIMStringVector V2TIMStringVector;
|
||||
|
||||
DEFINE_MAP(V2TIMString, V2TIMBuffer)
|
||||
typedef TXV2TIMStringToV2TIMBufferMap V2TIMCustomInfo;
|
||||
|
||||
DEFINE_MAP(V2TIMString, V2TIMString)
|
||||
typedef TXV2TIMStringToV2TIMStringMap V2TIMStringToV2TIMStringMap;
|
||||
typedef TXV2TIMStringToV2TIMStringMap V2TIMGroupAttributeMap;
|
||||
|
||||
DEFINE_MAP(V2TIMString, int64_t)
|
||||
typedef TXV2TIMStringToint64_tMap V2TIMStringToInt64Map;
|
||||
|
||||
class V2TIMLogListener;
|
||||
|
||||
struct TIM_API V2TIMBaseObject {
|
||||
void *obj_ptr;
|
||||
|
||||
V2TIMBaseObject();
|
||||
V2TIMBaseObject(const V2TIMBaseObject &object);
|
||||
virtual ~V2TIMBaseObject();
|
||||
};
|
||||
|
||||
/// SDK 配置
|
||||
struct TIM_API V2TIMSDKConfig {
|
||||
/// 存储消息、会话、资料等信息的文件路径,Android 平台必须填写,其他平台可选
|
||||
V2TIMString initPath;
|
||||
|
||||
/// 存储 log 的文件路径,Android 平台必须填写,其他平台可选
|
||||
V2TIMString logPath;
|
||||
|
||||
/// 本地写 log 文件的等级,默认 DEBUG 等级, IMSDK 的日志默认存储于程序文件的运行目录下
|
||||
V2TIMLogLevel logLevel;
|
||||
|
||||
/// log 监听回调(回调在主线程,日志回调可能比较频繁,请注意不要在回调里面同步处理太多耗时任务,可能会堵塞主线程)
|
||||
V2TIMLogListener *logListener;
|
||||
|
||||
V2TIMSDKConfig();
|
||||
V2TIMSDKConfig(const V2TIMSDKConfig &);
|
||||
~V2TIMSDKConfig();
|
||||
};
|
||||
|
||||
#endif /* __V2TIM_COMMON_H__ */
|
||||
156
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMConversation.h
generated
Executable file
156
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMConversation.h
generated
Executable file
@@ -0,0 +1,156 @@
|
||||
// Copyright (c) 2021 Tencent. All rights reserved.
|
||||
|
||||
#ifndef __V2TIM_CONVERSATION_H__
|
||||
#define __V2TIM_CONVERSATION_H__
|
||||
|
||||
#include "V2TIMCommon.h"
|
||||
#include "V2TIMMessage.h"
|
||||
#include "V2TIMString.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// (一)枚举值定义
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/// 会话类型
|
||||
enum V2TIMConversationType {
|
||||
///< 未知
|
||||
V2TIM_UNKNOWN = 0,
|
||||
///< 单聊
|
||||
V2TIM_C2C = 1,
|
||||
///< 群聊
|
||||
V2TIM_GROUP = 2,
|
||||
};
|
||||
|
||||
/// 会话标记类型
|
||||
enum V2TIMConversationMarkType {
|
||||
///< 会话标星
|
||||
V2TIM_CONVERSATION_MARK_TYPE_STAR = 0x1,
|
||||
///< 会话标记未读(重要会话)
|
||||
V2TIM_CONVERSATION_MARK_TYPE_UNREAD = 0x1 << 1,
|
||||
///< 会话折叠
|
||||
V2TIM_CONVERSATION_MARK_TYPE_FOLD = 0x1 << 2,
|
||||
///< 会话隐藏
|
||||
V2TIM_CONVERSATION_MARK_TYPE_HIDE = 0x1 << 3,
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// (二)结构体定义
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
DEFINE_VECTOR(uint64_t)
|
||||
typedef TXuint64_tVector UInt64Vector;
|
||||
|
||||
/// 会话对象
|
||||
struct TIM_API V2TIMConversation {
|
||||
/// 会话类型
|
||||
V2TIMConversationType type;
|
||||
/// 会话唯一 ID,如果是 C2C 单聊,组成方式为 c2c_userID,如果是群聊,组成方式为 group_groupID
|
||||
V2TIMString conversationID;
|
||||
/// 如果会话类型为 C2C 单聊,userID 会存储对方的用户ID,否则为空字符串
|
||||
V2TIMString userID;
|
||||
/// 如果会话类型为群聊,groupID 会存储当前群的群 ID,否则为空字符串
|
||||
V2TIMString groupID;
|
||||
/// 如果会话类型为群聊,groupType 为当前群类型,否则为空字符串
|
||||
V2TIMString groupType;
|
||||
/// 会话展示名称(群组:群名称 >> 群 ID;C2C:对方好友备注 >> 对方昵称 >> 对方的 userID)
|
||||
V2TIMString showName;
|
||||
/// 会话展示头像(群组:群头像;C2C:对方头像)
|
||||
V2TIMString faceUrl;
|
||||
/// 会话未读消息数量,直播群(AVChatRoom)不支持未读计数,默认为 0
|
||||
int unreadCount;
|
||||
/// 消息接收选项(接收 | 接收但不提醒 | 不接收)
|
||||
V2TIMReceiveMessageOpt recvOpt;
|
||||
/// 会话最后一条消息,如果会话没有消息,lastMessage 字段为 NULL
|
||||
/// 5.5.892 以前版本,请您使用 lastMessage -> timestamp 对会话做排序,timestamp 越大,会话越靠前
|
||||
V2TIMMessage *lastMessage;
|
||||
/// 群会话 @ 信息列表,用于展示 “有人@我” 或 “@所有人” 这两种提醒状态
|
||||
V2TIMGroupAtInfoVector groupAtInfolist;
|
||||
/// 草稿信息,设置草稿信息请调用 SetConversationDraft() 接口
|
||||
V2TIMString draftText;
|
||||
/// 草稿编辑时间,草稿设置的时候自动生成
|
||||
uint64_t draftTimestamp;
|
||||
/// 是否置顶
|
||||
bool isPinned;
|
||||
// 排序字段(5.5.892 及以后版本支持)
|
||||
// @note
|
||||
// - 排序字段 orderKey
|
||||
// 是按照会话的激活时间线性递增的一个数字(注意:不是时间戳,因为同一时刻可能会有多个会话被同时激活)
|
||||
// - 5.5.892 及其以后版本,推荐您使用该字段对所有会话进行排序,orderKey
|
||||
// 值越大,代表该会话排序越靠前
|
||||
// - 当您 “清空会话所有消息” 或者 “逐个删除会话的所有消息” 之后,会话的 lastMessage
|
||||
// 变为空,但会话的 orderKey
|
||||
// 不会改变;如果想保持会话的排序位置不变,可以使用该字段对所有会话进行排序
|
||||
uint64_t orderKey;
|
||||
/// 会话标记列表,取值详见 @V2TIMConversationMarkType(从 6.5 版本开始支持)
|
||||
UInt64Vector markList;
|
||||
/// 会话自定义数据(从 6.5 版本开始支持)
|
||||
V2TIMBuffer customData;
|
||||
/// 会话所属分组列表(从 6.5 版本开始支持)
|
||||
V2TIMStringVector conversationGroupList;
|
||||
/// 已读消息的时间戳,仅对单聊会话生效(从 7.1 版本开始支持)
|
||||
uint64_t c2cReadTimestamp;
|
||||
/// 已读消息的 sequence,仅对群聊会话生效(从 7.1 版本开始支持)
|
||||
uint64_t groupReadSequence;
|
||||
|
||||
V2TIMConversation();
|
||||
V2TIMConversation(const V2TIMConversation& conversation);
|
||||
V2TIMConversation& operator =(const V2TIMConversation& conversation);
|
||||
~V2TIMConversation();
|
||||
};
|
||||
|
||||
DEFINE_VECTOR(V2TIMConversation)
|
||||
typedef TXV2TIMConversationVector V2TIMConversationVector;
|
||||
|
||||
/// 会话 filter
|
||||
struct TIM_API V2TIMConversationListFilter {
|
||||
/// C2C 或群会话(填 0 代表不过滤此项)
|
||||
V2TIMConversationType type;
|
||||
/// 会话分组名称(填空代表不过滤此项)
|
||||
V2TIMString conversationGroup;
|
||||
/// 标记类型,取值详见 @V2TIMConversationMarkType(填 0 代表不过滤此项)
|
||||
uint64_t markType;
|
||||
|
||||
V2TIMConversationListFilter();
|
||||
V2TIMConversationListFilter(const V2TIMConversationListFilter& filter);
|
||||
V2TIMConversationListFilter& operator =(const V2TIMConversationListFilter& filter);
|
||||
~V2TIMConversationListFilter();
|
||||
};
|
||||
|
||||
/// 获取会话列表结果
|
||||
struct TIM_API V2TIMConversationResult {
|
||||
/// 获取下一次分页拉取的游标
|
||||
uint64_t nextSeq;
|
||||
/// 会话列表是否已经拉取完毕
|
||||
bool isFinished;
|
||||
/// 获取会话列表
|
||||
V2TIMConversationVector conversationList;
|
||||
|
||||
V2TIMConversationResult();
|
||||
V2TIMConversationResult(const V2TIMConversationResult& conversationResult);
|
||||
V2TIMConversationResult& operator=(const V2TIMConversationResult& conversationResult);
|
||||
~V2TIMConversationResult();
|
||||
};
|
||||
|
||||
/// 会话操作结果
|
||||
struct TIM_API V2TIMConversationOperationResult {
|
||||
/// 会话 ID
|
||||
V2TIMString conversationID;
|
||||
/// 返回码
|
||||
int resultCode;
|
||||
/// 返回信息
|
||||
V2TIMString resultInfo;
|
||||
|
||||
V2TIMConversationOperationResult();
|
||||
V2TIMConversationOperationResult(const V2TIMConversationOperationResult &result);
|
||||
~V2TIMConversationOperationResult();
|
||||
V2TIMConversationOperationResult& operator=(const V2TIMConversationOperationResult &result);
|
||||
};
|
||||
|
||||
DEFINE_VECTOR(V2TIMConversationOperationResult)
|
||||
typedef TXV2TIMConversationOperationResultVector V2TIMConversationOperationResultVector;
|
||||
|
||||
#endif /* __V2TIM_CONVERSATION_H__ */
|
||||
262
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMConversationManager.h
generated
Executable file
262
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMConversationManager.h
generated
Executable file
@@ -0,0 +1,262 @@
|
||||
// Copyright (c) 2021 Tencent. All rights reserved.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 腾讯云通信服务 IMSDK
|
||||
//
|
||||
// 会话接口,里面包含了会话的获取,删除,更新的逻辑
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __V2TIM_CONVERSATION_MANAGER_H__
|
||||
#define __V2TIM_CONVERSATION_MANAGER_H__
|
||||
|
||||
#include "V2TIMCallback.h"
|
||||
#include "V2TIMConversation.h"
|
||||
#include "V2TIMDefine.h"
|
||||
#include "V2TIMListener.h"
|
||||
|
||||
class TIM_API V2TIMConversationManager {
|
||||
public:
|
||||
virtual ~V2TIMConversationManager() {}
|
||||
|
||||
/**
|
||||
* 1.1 添加会话监听器
|
||||
*/
|
||||
virtual void AddConversationListener(V2TIMConversationListener* listener) = 0;
|
||||
|
||||
/**
|
||||
* 1.2 移除会话监听器
|
||||
*/
|
||||
virtual void RemoveConversationListener(V2TIMConversationListener* listener) = 0;
|
||||
|
||||
/**
|
||||
* 1.3 获取会话列表
|
||||
*
|
||||
* - 一个会话对应一个聊天窗口,比如跟一个好友的 1v1 聊天,或者一个聊天群,都是一个会话。
|
||||
* -
|
||||
* 由于历史的会话数量可能很多,所以该接口希望您采用分页查询的方式进行调用,每次分页拉取的个数建议为
|
||||
* 100 个。
|
||||
* - 该接口拉取的是本地缓存的会话,如果服务器会话有更新,SDK 内部会自动同步,然后在 @ref
|
||||
* V2TIMConversationListener 回调告知客户。
|
||||
* - 如果会话全部拉取完毕,成功回调里面 V2TIMConversationResult 中的 isFinished 获取字段值为
|
||||
* true。
|
||||
*
|
||||
* @note 会话排序规则
|
||||
* - 5.5.892 及以后版本, 该接口获取的会话列表默认已经按照会话 orderKey 做了排序,orderKey
|
||||
* 值越大,代表该会话排序越靠前。
|
||||
* - 5.5.892 以前版本,该接口获取的会话列表默认已经按照会话 lastMessage -> timestamp
|
||||
* 做了排序,timestamp 越大,会话越靠前。
|
||||
*
|
||||
* @param nextSeq 分页拉取的游标,第一次默认取传 0,后续分页拉传上一次分页拉取成功回调里的
|
||||
* nextSeq
|
||||
* @param count 分页拉取的个数,一次分页拉取不宜太多,会影响拉取的速度,建议每次拉取 100
|
||||
* 个会话
|
||||
*/
|
||||
virtual void GetConversationList(uint64_t nextSeq, uint32_t count,
|
||||
V2TIMValueCallback<V2TIMConversationResult>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 1.4 获取单个会话
|
||||
*
|
||||
* @param conversationID 会话唯一 ID,C2C 单聊组成方式为: "c2c_userID":
|
||||
* 群聊组成方式为: "group_groupID")
|
||||
*/
|
||||
virtual void GetConversation(const V2TIMString& conversationID,
|
||||
V2TIMValueCallback<V2TIMConversation>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 1.5 获取指定会话列表
|
||||
*
|
||||
* @param conversationIDList 会话唯一 ID,C2C 单聊组成方式为: "c2c_userID":
|
||||
* 群聊组成方式为: "group_groupID")
|
||||
*/
|
||||
virtual void GetConversationList(const V2TIMStringVector& conversationIDList,
|
||||
V2TIMValueCallback<V2TIMConversationVector>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 1.6 获取会话列表高级接口(从 6.5 版本开始支持)
|
||||
*
|
||||
* @param filter 会话 filter
|
||||
* @param nextSeq 分页拉取的游标
|
||||
* @param count 分页拉取的个数
|
||||
*
|
||||
*/
|
||||
virtual void GetConversationListByFilter(const V2TIMConversationListFilter &filter,
|
||||
uint64_t nextSeq, uint32_t count,
|
||||
V2TIMValueCallback<V2TIMConversationResult>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 1.7 删除会话
|
||||
*
|
||||
* @param conversationID 会话唯一 ID,C2C 单聊组成方式为: "c2c_userID":
|
||||
* 群聊组成方式为: "group_groupID")
|
||||
*
|
||||
* @note 请注意:
|
||||
* - 删除会话会在本地删除的同时,在服务器也会同步删除。
|
||||
* - 会话内的消息在本地删除的同时,在服务器也会同步删除。
|
||||
*/
|
||||
virtual void DeleteConversation(const V2TIMString& conversationID, V2TIMCallback* callback) = 0;
|
||||
|
||||
/**
|
||||
* 1.8 删除会话列表(7.1 及以上版本支持)
|
||||
*
|
||||
* @param conversationIDList 会话唯一 ID 列表,C2C 单聊组成方式为: "c2c_userID":群聊组成方式为: "group_groupID")
|
||||
* @param clearMessage 是否删除会话中的消息;设置为 false 时,保留会话消息;设置为 true 时,本地和服务器的消息会一起删除,并且不可恢复
|
||||
*
|
||||
* @note 请注意: 每次最多支持删除 100 个会话
|
||||
*/
|
||||
virtual void DeleteConversationList(const V2TIMStringVector& conversationIDList, bool clearMessage,
|
||||
V2TIMValueCallback<V2TIMConversationOperationResultVector>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 1.9 设置会话草稿
|
||||
*
|
||||
* @param conversationID 会话唯一 ID,C2C 会话唯一 ID,C2C 单聊组成方式为: "c2c_userID":
|
||||
* 群聊组成方式为: "group_groupID")
|
||||
*
|
||||
* 只在本地保存,不会存储 Server,不能多端同步,程序卸载重装会失效。
|
||||
*
|
||||
* @param draftText 草稿内容, 空字符串表示 则表示取消草稿
|
||||
*/
|
||||
virtual void SetConversationDraft(const V2TIMString& conversationID,
|
||||
const V2TIMString& draftText, V2TIMCallback* callback) = 0;
|
||||
|
||||
/**
|
||||
* 1.10 设置会话自定义数据(从 6.5 版本开始支持)
|
||||
*
|
||||
* @param customData 自定义数据,最大支持 256 bytes
|
||||
*/
|
||||
virtual void SetConversationCustomData(const V2TIMStringVector &conversationIDList, const V2TIMBuffer &customData,
|
||||
V2TIMValueCallback<V2TIMConversationOperationResultVector>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 1.11 设置会话置顶(5.3.425 及以上版本支持)
|
||||
*
|
||||
* @param conversationID 会话唯一 ID,C2C 单聊组成方式为: "c2c_userID":
|
||||
* 群聊组成方式为: "group_groupID")
|
||||
*
|
||||
* @param isPinned 是否置顶
|
||||
*/
|
||||
virtual void PinConversation(const V2TIMString& conversationID, bool isPinned,
|
||||
V2TIMCallback* callback) = 0;
|
||||
|
||||
/**
|
||||
* 1.12 标记会话(从 6.5 版本开始支持,需要您购买旗舰版套餐)
|
||||
*
|
||||
* @param conversationIDList 会话列表
|
||||
* @param markType 会话标记类型,取值详见 @V2TIMConversationMarkType。
|
||||
* @param enableMark YES:设置标记 NO:取消标记
|
||||
*
|
||||
* 如果已有标记不能满足您的需求,您可以自定义扩展标记,扩展标记需要满足以下两个条件:
|
||||
* 1、扩展标记值不能和 V2TIMConversationMarkType 已有的标记值冲突
|
||||
* 2、扩展标记值必须是 0x1LL << n 的位移值(32 <= n < 64,即 n 必须大于等于 32 并且小于 64),比如扩展标记值 0x1LL << 32 表示 "Windows 在线"
|
||||
*
|
||||
* @note:扩展标记值不能设置为 0x1 << 32,要设置为 0x1LL << 32,明确告诉编译器是 64 位的整型常量。
|
||||
*
|
||||
*/
|
||||
virtual void MarkConversation(const V2TIMStringVector &conversationIDList, uint64_t markType, bool enableMark,
|
||||
V2TIMValueCallback<V2TIMConversationOperationResultVector>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 1.13 获取全部会话的未读总数(5.3.425 及以上版本支持)
|
||||
* @note
|
||||
* - 调用该接口以后,任意会话的未读数发生变化时,SDK 都会给您抛 OnTotalUnreadMessageCountChanged 回调。
|
||||
* - 未读总数会减去设置为免打扰的会话的未读数,即消息接收选项设置为
|
||||
* V2TIM_NOT_RECEIVE_MESSAGE 或 V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE 的会话。
|
||||
*/
|
||||
virtual void GetTotalUnreadMessageCount(V2TIMValueCallback<uint64_t>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 1.14 获取按会话 filter 过滤的未读总数(7.0 及以上版本支持)
|
||||
*
|
||||
* @param filter 会话 filter
|
||||
*
|
||||
* @note
|
||||
* - 未读总数会减去设置为免打扰的会话的未读数,即消息接收选项设置为
|
||||
* V2TIM_NOT_RECEIVE_MESSAGE 或 V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE 的会话。
|
||||
*/
|
||||
virtual void GetUnreadMessageCountByFilter(const V2TIMConversationListFilter &filter,
|
||||
V2TIMValueCallback<uint64_t>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 1.15 注册监听指定 filter 的会话未读总数变化(7.0 及以上版本支持)
|
||||
*
|
||||
* @param filter 会话 filter
|
||||
*
|
||||
* @note
|
||||
* - 当您调用这个接口以后,该 filter 下的未读数发生变化时,SDK 会给您抛 OnUnreadMessageCountChangedByFilter 回调。
|
||||
*/
|
||||
virtual void SubscribeUnreadMessageCountByFilter(const V2TIMConversationListFilter &filter) = 0;
|
||||
|
||||
/**
|
||||
* 1.16 取消监听指定 filter 的会话未读总数变化(7.0 及以上版本支持)
|
||||
*
|
||||
* @param filter 会话 filter
|
||||
*
|
||||
*/
|
||||
virtual void UnsubscribeUnreadMessageCountByFilter(const V2TIMConversationListFilter &filter) = 0;
|
||||
|
||||
/** 1.17 清理会话的未读消息计数(7.1 及以上版本支持)
|
||||
*
|
||||
* @param conversationID 会话唯一 ID, C2C 单聊组成方式:[NSString stringWithFormat:@"c2c_%@",userID];群聊组成方式为 [NSString stringWithFormat:@"group_%@",groupID]
|
||||
* @param cleanTimestamp 清理时间戳,仅对单聊会话生效,指定清理哪一个 timestamp 之前的未读消息计数;当传入为 0 时,对应会话所有的未读消息将被清理,会话的未读数会清 0
|
||||
* @param cleanSequence 清理 sequence,仅对群聊会话生效,指定清理哪一个 sequence 之前的未读消息计数;当传入为 0 时,对应会话所有的未读消息将被清理,会话的未读数会清 0
|
||||
*
|
||||
* @note
|
||||
* - 当您想清理所有单聊会话的未读消息计数,conversationID 请传入 "c2c",即不指定具体的 userID;
|
||||
* - 当您想清理所有群聊会话的未读消息计数,conversationID 请传入 "group",即不指定具体的 groupID;
|
||||
* - 当您想清理所有会话的未读消息计数,conversationID 请传入 "";
|
||||
* - 该接口调用成功后,SDK 会通过 onConversationChanged 回调将对应会话的最新未读数通知给您。
|
||||
*/
|
||||
virtual void CleanConversationUnreadMessageCount(const V2TIMString& conversationID, uint64_t cleanTimestamp, uint64_t cleanSequence, V2TIMCallback* callback) = 0;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 会话分组相关接口 (从 6.5 版本开始支持,需要您购买旗舰版套餐)
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 2.1 创建会话分组
|
||||
*
|
||||
* @param groupName 分组名(必填参数,长度要 > 0,最大支持 32 bytes)
|
||||
* @param conversationIDList 会话 ID 列表(必填参数,不能为空)
|
||||
*
|
||||
* @note 会话分组最大支持 20 个,不再使用的分组请及时删除
|
||||
*/
|
||||
virtual void CreateConversationGroup(const V2TIMString &groupName, const V2TIMStringVector &conversationIDList,
|
||||
V2TIMValueCallback<V2TIMConversationOperationResultVector>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 2.2 获取会话分组列表
|
||||
*/
|
||||
virtual void GetConversationGroupList(V2TIMValueCallback<V2TIMStringVector>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 2.3 删除会话分组
|
||||
*/
|
||||
virtual void DeleteConversationGroup(const V2TIMString &groupName, V2TIMCallback* callback) = 0;
|
||||
|
||||
/**
|
||||
* 2.4 重命名会话分组
|
||||
*
|
||||
*/
|
||||
virtual void RenameConversationGroup(const V2TIMString &oldName, const V2TIMString &newName,
|
||||
V2TIMCallback* callback) = 0;
|
||||
|
||||
/**
|
||||
* 2.5 添加会话到一个会话分组
|
||||
*/
|
||||
virtual void AddConversationsToGroup(const V2TIMString &groupName, const V2TIMStringVector &conversationIDList,
|
||||
V2TIMValueCallback<V2TIMConversationOperationResultVector>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 2.6 从一个会话分组中删除会话
|
||||
*/
|
||||
virtual void DeleteConversationsFromGroup(const V2TIMString &groupName, const V2TIMStringVector &conversationIDList,
|
||||
V2TIMValueCallback<V2TIMConversationOperationResultVector>* callback) = 0;
|
||||
|
||||
};
|
||||
|
||||
#endif // __V2TIM_CONVERSATION_MANAGER_H__
|
||||
198
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMDefine.h
generated
Executable file
198
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMDefine.h
generated
Executable file
@@ -0,0 +1,198 @@
|
||||
// Copyright (c) 2021 Tencent. All rights reserved.
|
||||
|
||||
#ifndef __V2TIM_DEFINE_H__
|
||||
#define __V2TIM_DEFINE_H__
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// (一)整型定义
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _MSC_VER
|
||||
// stdint.h is part of C99 but MSVC doesn't have it.
|
||||
#include <stdint.h>
|
||||
#endif
|
||||
|
||||
// define int types
|
||||
#if defined(__GNUC__)
|
||||
|
||||
#ifndef _STDINT_H
|
||||
|
||||
// FreeBSD has these C99 int types defined in /sys/inttypes.h already
|
||||
#ifndef _SYS_TYPES_H
|
||||
typedef signed char int8_t;
|
||||
typedef signed short int16_t;
|
||||
typedef signed int int32_t;
|
||||
typedef signed long long int64_t;
|
||||
typedef unsigned char uint8_t;
|
||||
typedef unsigned short uint16_t;
|
||||
typedef unsigned int uint32_t;
|
||||
typedef unsigned long long uint64_t;
|
||||
#else
|
||||
typedef u_int8_t uint8_t;
|
||||
typedef u_int16_t uint16_t;
|
||||
typedef u_int32_t uint32_t;
|
||||
typedef u_int64_t uint64_t;
|
||||
#endif // _SYS_TYPES_H
|
||||
|
||||
#endif // _STDINT_H
|
||||
|
||||
#elif defined(_MSC_VER)
|
||||
typedef signed char int8_t;
|
||||
typedef signed short int16_t;
|
||||
typedef signed int int32_t;
|
||||
typedef signed __int64 int64_t;
|
||||
typedef unsigned char uint8_t;
|
||||
typedef unsigned short uint16_t;
|
||||
typedef unsigned int uint32_t;
|
||||
typedef unsigned __int64 uint64_t;
|
||||
|
||||
/* the following definitions are from VS2010's stdint.h */
|
||||
#ifndef _INTPTR_T_DEFINED
|
||||
#define _INTPTR_T_DEFINED
|
||||
#ifdef _WIN64
|
||||
typedef __int64 intptr_t;
|
||||
#else /* _WIN64 */
|
||||
typedef int intptr_t;
|
||||
#endif /* _WIN64 */
|
||||
#endif /* _INTPTR_T_DEFINED */
|
||||
|
||||
#ifndef _UINTPTR_T_DEFINED
|
||||
#define _UINTPTR_T_DEFINED
|
||||
#ifdef _WIN64
|
||||
typedef unsigned __int64 uintptr_t;
|
||||
#else /* _WIN64 */
|
||||
typedef unsigned int uintptr_t;
|
||||
#endif /* _WIN64 */
|
||||
#endif /* _UINTPTR_T_DEFINED */
|
||||
|
||||
#endif // COMPILER_GCC/COMPILER_MSVC
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// (二)导出宏定义
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifdef _WIN32
|
||||
#if defined(TIM_EXPORT)
|
||||
#define TIM_API __declspec(dllexport)
|
||||
#else
|
||||
#define TIM_API __declspec(dllimport)
|
||||
#endif
|
||||
#else
|
||||
#define TIM_API __attribute__((visibility("default")))
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// (三)Vector 宏定义
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#define DEFINE_VECTOR(class_name) \
|
||||
class TX##class_name##VectorIMPL; \
|
||||
\
|
||||
class TIM_API TX##class_name##Vector { \
|
||||
public: \
|
||||
TX##class_name##Vector(); \
|
||||
\
|
||||
TX##class_name##Vector(const TX##class_name##Vector& vect); \
|
||||
\
|
||||
virtual ~TX##class_name##Vector(); \
|
||||
\
|
||||
void PushBack(class_name const& obj); \
|
||||
\
|
||||
void PopBack(); \
|
||||
\
|
||||
class_name& operator[](size_t index); \
|
||||
\
|
||||
class_name const& operator[](size_t index) const; \
|
||||
\
|
||||
TX##class_name##Vector& operator=(const TX##class_name##Vector& vec); \
|
||||
\
|
||||
size_t Size() const; \
|
||||
\
|
||||
bool Empty() const; \
|
||||
\
|
||||
void Clear(); \
|
||||
\
|
||||
void Erase(size_t index); \
|
||||
\
|
||||
private: \
|
||||
TX##class_name##VectorIMPL* impl_; \
|
||||
};
|
||||
|
||||
#define DEFINE_POINT_VECTOR(class_name) \
|
||||
class TXP##class_name##VectorIMPL; \
|
||||
\
|
||||
class TIM_API TXP##class_name##Vector { \
|
||||
public: \
|
||||
TXP##class_name##Vector(); \
|
||||
\
|
||||
TXP##class_name##Vector(const TXP##class_name##Vector& vect); \
|
||||
\
|
||||
virtual ~TXP##class_name##Vector(); \
|
||||
\
|
||||
void PushBack(class_name* const& obj); \
|
||||
\
|
||||
void PopBack(); \
|
||||
\
|
||||
class_name*& operator[](size_t index); \
|
||||
\
|
||||
class_name* const& operator[](size_t index) const; \
|
||||
\
|
||||
TXP##class_name##Vector& operator=(const TXP##class_name##Vector& vec); \
|
||||
\
|
||||
size_t Size() const; \
|
||||
\
|
||||
bool Empty() const; \
|
||||
\
|
||||
void Clear(); \
|
||||
\
|
||||
void Erase(size_t index); \
|
||||
\
|
||||
private: \
|
||||
TXP##class_name##VectorIMPL* impl_; \
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// (四)Map 宏定义
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#define DEFINE_MAP(class_key, class_value) \
|
||||
class TX##class_key##To##class_value##MapIMPL; \
|
||||
\
|
||||
class TIM_API TX##class_key##To##class_value##Map { \
|
||||
public: \
|
||||
TX##class_key##To##class_value##Map(); \
|
||||
\
|
||||
TX##class_key##To##class_value##Map(const TX##class_key##To##class_value##Map& map); \
|
||||
\
|
||||
virtual ~TX##class_key##To##class_value##Map(); \
|
||||
\
|
||||
bool Insert(const class_key& key, const class_value& value); \
|
||||
\
|
||||
void Erase(const class_key& key); \
|
||||
\
|
||||
size_t Count(const class_key& key) const; \
|
||||
\
|
||||
size_t Size() const; \
|
||||
\
|
||||
class_value Get(const class_key& key) const; \
|
||||
\
|
||||
class_value& operator[](const class_key& key); \
|
||||
\
|
||||
TX##class_key##To##class_value##Map& operator=( \
|
||||
const TX##class_key##To##class_value##Map& map); \
|
||||
\
|
||||
const class_key##Vector AllKeys() const; \
|
||||
\
|
||||
private: \
|
||||
TX##class_key##To##class_value##MapIMPL* impl_; \
|
||||
};
|
||||
|
||||
#endif /* __V2TIM_DEFINE_H__ */
|
||||
356
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMErrorCode.h
generated
Executable file
356
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMErrorCode.h
generated
Executable file
@@ -0,0 +1,356 @@
|
||||
// Copyright (c) 2021 Tencent. All rights reserved.
|
||||
|
||||
#ifndef __V2TIM_ERROR_CODE_H__
|
||||
#define __V2TIM_ERROR_CODE_H__
|
||||
|
||||
enum V2TIMErrorCode {
|
||||
// ///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// (一)IM SDK 的错误码
|
||||
//
|
||||
// ///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// 通用错误码
|
||||
|
||||
ERR_SUCC = 0, // 无错误。
|
||||
ERR_IN_PROGESS = 6015, // 执行中,请做好接口调用控制,例如,第一次初始化操作在回调前,后续的初始化操作会返回该错误码。
|
||||
ERR_INVALID_PARAMETERS = 6017, // 参数无效,请检查参数是否符合要求,具体可查看错误信息进一步定义哪个字段。
|
||||
ERR_IO_OPERATION_FAILED = 6022, // 操作本地 IO 错误,检查是否有读写权限,磁盘是否已满。
|
||||
ERR_INVALID_JSON = 6027, // 错误的 JSON 格式,请检查参数是否符合接口的要求,具体可查看错误信息进一步定义哪个字段。
|
||||
ERR_OUT_OF_MEMORY = 6028, // 内存不足,可能存在内存泄漏,iOS 平台使用 Instrument 工具,Android 平台使用 Profiler 工具,分析出什么地方的内存占用高。
|
||||
ERR_PARSE_RESPONSE_FAILED = 6001, // PB 解析失败,内部错误。
|
||||
ERR_SERIALIZE_REQ_FAILED = 6002, // PB 序列化失败,内部错误。
|
||||
ERR_SDK_NOT_INITIALIZED = 6013, // IM SDK 未初始化,初始化成功回调之后重试。
|
||||
ERR_LOADMSG_FAILED = 6005, // 加载本地数据库操作失败,可能存储文件有损坏。
|
||||
ERR_DATABASE_OPERATE_FAILED = 6019, // 本地数据库操作失败,可能是部分目录无权限或者数据库文件已损坏。
|
||||
ERR_SDK_COMM_CROSS_THREAD = 7001, // 跨线程错误,不能在跨越不同线程中执行,内部错误。
|
||||
ERR_SDK_COMM_TINYID_EMPTY = 7002, // TinyId 为空,内部错误。
|
||||
ERR_SDK_COMM_INVALID_IDENTIFIER = 7003, // Identifier 非法,必须不为空,要求可打印 ASCII 字符(0x20-0x7e),长度不超过32字节。
|
||||
ERR_SDK_COMM_FILE_NOT_FOUND = 7004, // 文件不存在,请检查文件路径是否正确。
|
||||
ERR_SDK_COMM_FILE_TOO_LARGE = 7005, // 文件大小超出了限制,语音、图片,最大限制是28MB,视频、文件,最大限制 100M
|
||||
ERR_SDK_COMM_FILE_SIZE_EMPTY = 7006, // 空文件,要求文件大小不是0字节,如果上传图片、语音、视频或文件,请检查文件是否正确生成。
|
||||
ERR_SDK_COMM_FILE_OPEN_FAILED = 7007, // 文件打开失败,请检查文件是否存在,或者已被独占打开,引起 SDK 打开失败。
|
||||
ERR_SDK_COMM_API_CALL_FREQUENCY_LIMIT = 7008, // API 调用超频
|
||||
ERR_SDK_COMM_INTERRUPT = 7009, // 正在执行时被终止,例如正在登录时,调用 unInit 停止使用 SDK 。
|
||||
ERR_SDK_COMM_DATABASE_FAILURE = 7010, // database 操作失败
|
||||
ERR_SDK_COMM_DATABASE_NOTFOUND = 7011, // database 查询的数据不存在
|
||||
ERR_SDK_INTERNAL_ERROR = 7012, // SDK 内部不应该出现的内部错误
|
||||
ERR_SDK_INTERFACE_NOT_SUPPORT = 7013, // 套餐包不支持该接口的使用,请升级到旗舰版套餐
|
||||
|
||||
// 帐号错误码
|
||||
|
||||
ERR_SDK_NOT_LOGGED_IN = 6014, // IM SDK 未登录,请先登录,成功回调之后重试,或者已被踢下线,可使用 TIMManager getLoginUser 检查当前是否在线。
|
||||
ERR_NO_PREVIOUS_LOGIN = 6026, // 自动登录时,并没有登录过该用户,这时候请调用 login 接口重新登录。
|
||||
ERR_USER_SIG_EXPIRED = 6206, // UserSig 过期,请重新获取有效的 UserSig 后再重新登录。
|
||||
ERR_LOGIN_KICKED_OFF_BY_OTHER = 6208, // 其他终端登录同一个帐号,引起已登录的帐号被踢,需重新登录。
|
||||
ERR_SDK_ACCOUNT_LOGIN_IN_PROCESS = 7501, // 登录正在执行中,例如,第一次 login 或 autoLogin 操作在回调前,后续的 login 或 autoLogin 操作会返回该错误码。
|
||||
ERR_SDK_ACCOUNT_LOGOUT_IN_PROCESS = 7502, // 登出正在执行中,例如,第一次 logout 操作在回调前,后续的 logout 操作会返回该错误码。
|
||||
ERR_SDK_ACCOUNT_TLS_INIT_FAILED = 7503, // TLS SDK 初始化失败,内部错误。
|
||||
ERR_SDK_ACCOUNT_TLS_NOT_INITIALIZED = 7504, // TLS SDK 未初始化,内部错误。
|
||||
ERR_SDK_ACCOUNT_TLS_TRANSPKG_ERROR = 7505, // TLS SDK TRANS 包格式错误,内部错误。
|
||||
ERR_SDK_ACCOUNT_TLS_DECRYPT_FAILED = 7506, // TLS SDK 解密失败,内部错误。
|
||||
ERR_SDK_ACCOUNT_TLS_REQUEST_FAILED = 7507, // TLS SDK 请求失败,内部错误。
|
||||
ERR_SDK_ACCOUNT_TLS_REQUEST_TIMEOUT = 7508, // TLS SDK 请求超时,内部错误。
|
||||
|
||||
// 消息错误码
|
||||
|
||||
ERR_INVALID_CONVERSATION = 6004, // 会话无效,getConversation 时检查是否已经登录,如未登录获取会话,会有此错误码返回。
|
||||
ERR_FILE_TRANS_AUTH_FAILED = 6006, // 文件传输鉴权失败。
|
||||
ERR_FILE_TRANS_NO_SERVER = 6007, // 文件传输获取 Server 列表失败。
|
||||
ERR_FILE_TRANS_UPLOAD_FAILED = 6008, // 文件传输上传失败,请检查网络是否连接。
|
||||
ERR_IMAGE_UPLOAD_FAILED_NOTIMAGE = 6031, // 文件传输上传失败,请检查上传的图片是否能够正常打开。
|
||||
ERR_FILE_TRANS_DOWNLOAD_FAILED = 6009, // 文件传输下载失败,请检查网络,或者文件、语音是否已经过期,目前资源文件存储7天。
|
||||
ERR_HTTP_REQ_FAILED = 6010, // HTTP 请求失败,请检查 URL 地址是否合法,可在网页浏览器尝试访问该 URL 地址。
|
||||
ERR_INVALID_MSG_ELEM = 6016, // IM SDK 无效消息 elem,具体可查看错误信息进一步定义哪个字段。
|
||||
ERR_INVALID_SDK_OBJECT = 6021, // 无效的对象,例如用户自己生成 TIMImage 对象,或内部赋值错误导致对象无效。
|
||||
ERR_SDK_MSG_BODY_SIZE_LIMIT = 8001, // 消息长度超出限制,消息长度不要超过12k,消息长度是各个 elem 长度的总和,elem 长度是所有 elem 字段的长度总和。
|
||||
ERR_SDK_MSG_KEY_REQ_DIFFER_RSP = 8002, // 消息 KEY 错误,内部错误,网络请求包的 KEY 和 回复包的不一致。
|
||||
ERR_SDK_IMAGE_CONVERT_ERROR = 8003, // 万象优图 HTTP 请求失败。
|
||||
ERR_SDK_IMAGE_CI_BLOCK = 8004, // 万象优图因为鉴黄等原因转缩略图失败。
|
||||
ERR_MERGER_MSG_LAYERS_OVER_LIMIT = 8005, // 合并消息嵌套层数超过上限(上限 100 层)。
|
||||
ERR_SDK_MSG_MODIFY_CONFLICT = 8006, // 消息修改冲突,您请求修改的消息已经被其他人修改。
|
||||
ERR_SDK_SIGNALING_INVALID_INVITE_ID = 8010, // 信令请求 ID 无效或已经被处理过。(上层接口使用,底层为了不重复也增加一份)
|
||||
ERR_SDK_SIGNALING_NO_PERMISSION = 8011, // 信令请求无权限,比如取消非自己发起的邀请。(上层接口使用,底层为了不重复也增加一份)
|
||||
ERR_SDK_SIGNALING_ALREADY_EXISTS = 8012, // 信令邀请已存在。
|
||||
ERR_SDK_INVALID_CANCEL_MESSAGE = 8020, // 取消消息时,取消的消息不存在,或者已经发送成功。取消失败
|
||||
ERR_SDK_SEND_MESSAGE_FAILED_WITH_CANCEL = 8021, // 消息发送失败,因为该消息已被取消
|
||||
// 群组错误码
|
||||
|
||||
ERR_SDK_GROUP_INVALID_ID = 8501, // 群组 ID 非法,自定义群组 ID 必须为可打印 ASCII 字符(0x20-0x7e),最长48个字节,且前缀不能为 @TGS#(避免与服务端默认分配的群组 ID 混淆)。
|
||||
ERR_SDK_GROUP_INVALID_NAME = 8502, // 群名称非法,群名称最长30字节,字符编码必须是 UTF-8 ,如果包含中文,可能用多个字节表示一个中文字符,请注意检查字符串的字节长度。
|
||||
ERR_SDK_GROUP_INVALID_INTRODUCTION = 8503, // 群简介非法,群简介最长240字节,字符编码必须是 UTF-8 ,如果包含中文,可能用多个字节表示一个中文字符,请注意检查字符串的字节长度。
|
||||
ERR_SDK_GROUP_INVALID_NOTIFICATION = 8504, // 群公告非法,群公告最长300字节,字符编码必须是 UTF-8 ,如果包含中文,可能用多个字节表示一个中文字符,请注意检查字符串的字节长度。
|
||||
ERR_SDK_GROUP_INVALID_FACE_URL = 8505, // 群头像 URL 非法,群头像 URL 最长100字节,可在网页浏览器尝试访问该 URL 地址。
|
||||
ERR_SDK_GROUP_INVALID_NAME_CARD = 8506, // 群名片非法,群名片最长50字节,字符编码必须是 UTF-8 ,如果包含中文,可能用多个字节表示一个中文字符,请注意检查字符串的字节长度。
|
||||
ERR_SDK_GROUP_MEMBER_COUNT_LIMIT = 8507, // 超过群组成员数的限制,在创建群和邀请成员时,指定的成员数超出限制,最大群成员数量:私有群是200人,公开群是2000人,聊天室是10000人,音视频聊天室和在线成员广播大群无限制。
|
||||
ERR_SDK_GROUP_JOIN_PRIVATE_GROUP_DENY = 8508, // 不允许申请加入 Private 群组,任意群成员可邀请入群,且无需被邀请人同意。
|
||||
ERR_SDK_GROUP_INVITE_SUPER_DENY = 8509, // 不允许邀请角色为群主的成员,请检查角色字段是否填写正确。
|
||||
ERR_SDK_GROUP_INVITE_NO_MEMBER = 8510, // 不允许邀请0个成员,请检查成员字段是否填写正确。
|
||||
ERR_SDK_GROUP_ATTR_FREQUENCY_LIMIT = 8511, // 群属性接口操作限制:增删改接口后台限制1秒5次,查接口 SDK 限制5秒20次。
|
||||
ERR_SDK_GROUP_GET_ONLINE_MEMBER_COUNT_LIMIT = 8512, // 获取群在线人数接口操作限制:查接口 SDK 限制60秒1次。
|
||||
ERR_SDK_GROUP_GET_GROUPS_INFO_LIMIT = 8513, // 获取群资料接口操作限制:查接口 SDK 限制1秒1次。
|
||||
ERR_SDK_GROUP_GET_JOINED_GROUP_LIMIT = 8514, // 获取加入群列表接口操作限制:查接口 SDK 限制1秒1次。
|
||||
|
||||
// 关系链错误码
|
||||
|
||||
ERR_SDK_FRIENDSHIP_INVALID_PROFILE_KEY = 9001, // 资料字段非法,资料支持标配字段及自定义字段,其中自定义字段的关键字,必须是英文字母,且长度不得超过8字节,自定义字段的值最长不能超过500字节。
|
||||
ERR_SDK_FRIENDSHIP_INVALID_ADD_REMARK = 9002, // 备注字段非法,最大96字节,字符编码必须是 UTF-8 ,如果包含中文,可能用多个字节表示一个中文字符,请注意检查字符串的字节长度。
|
||||
ERR_SDK_FRIENDSHIP_INVALID_ADD_WORDING = 9003, // 请求添加好友的请求说明字段非法,最大120字节,字符编码必须是 UTF-8 ,如果包含中文,可能用多个字节表示一个中文字符,请注意检查字符串的字节长度。
|
||||
ERR_SDK_FRIENDSHIP_INVALID_ADD_SOURCE = 9004, // 请求添加好友的添加来源字段非法,来源需要添加“AddSource_Type_”前缀。
|
||||
ERR_SDK_FRIENDSHIP_FRIEND_GROUP_EMPTY = 9005, // 好友分组字段非法,必须不为空,每个分组的名称最长30字节,字符编码必须是 UTF-8 ,如果包含中文,可能用多个字节表示一个中文字符,请注意检查字符串的字节长度。
|
||||
ERR_SDK_FRIENDSHIP_EXCEED_THE_LIMIT = 9006, // 超过数量限制
|
||||
|
||||
// 网络错误码
|
||||
|
||||
ERR_SDK_NET_ENCODE_FAILED = 9501, // 网络加密失败,内部错误。
|
||||
ERR_SDK_NET_DECODE_FAILED = 9502, // 网络数据解密失败,内部错误。
|
||||
ERR_SDK_NET_AUTH_INVALID = 9503, // 未完成鉴权,可能登录未完成,请在登录完成后再操作。
|
||||
ERR_SDK_NET_COMPRESS_FAILED = 9504, // 数据包压缩失败,内部错误。
|
||||
ERR_SDK_NET_UNCOMPRESS_FAILED = 9505, // 数据包解压失败,内部错误。
|
||||
ERR_SDK_NET_FREQ_LIMIT = 9506, // 调用频率限制,最大每秒发起 5 次请求。
|
||||
ERR_SDK_NET_REQ_COUNT_LIMIT = 9507, // 请求队列満,超过同时请求的数量限制,最大同时发起1000个请求。
|
||||
ERR_SDK_NET_DISCONNECT = 9508, // 网络已断开,未建立连接,或者建立 socket 连接时,检测到无网络。
|
||||
ERR_SDK_NET_ALLREADY_CONN = 9509, // 网络连接已建立,重复创建连接,内部错误。
|
||||
ERR_SDK_NET_CONN_TIMEOUT = 9510, // 建立网络连接超时,请等网络恢复后重试。
|
||||
ERR_SDK_NET_CONN_REFUSE = 9511, // 网络连接已被拒绝,请求过于频繁,服务端拒绝服务。
|
||||
ERR_SDK_NET_NET_UNREACH = 9512, // 没有到达网络的可用路由,请等网络恢复后重试。
|
||||
ERR_SDK_NET_SOCKET_NO_BUFF = 9513, // 系统中没有足够的缓冲区空间资源可用来完成调用,系统过于繁忙,内部错误。
|
||||
ERR_SDK_NET_RESET_BY_PEER = 9514, // 对端重置了连接,可能服务端过载,SDK 内部会自动重连,请等网络连接成功 onConnSucc ( iOS ) 或 onConnected ( Android ) 回调后重试。
|
||||
ERR_SDK_NET_SOCKET_INVALID = 9515, // socket 套接字无效,内部错误。
|
||||
ERR_SDK_NET_HOST_GETADDRINFO_FAILED = 9516, // IP 地址解析失败,内部错误,可能是本地 imsdk_config 配置文件被损坏,读取到到 IP 地址非法。
|
||||
ERR_SDK_NET_CONNECT_RESET = 9517, // 网络连接到中间节点或服务端重置,引起连接失效,内部错误,SDK 内部会自动重连,请等网络连接成功 onConnSucc ( iOS ) 或 onConnected ( Android ) 回调后重试。
|
||||
ERR_SDK_NET_WAIT_INQUEUE_TIMEOUT = 9518, // 请求包等待进入待发送队列超时,发送时网络连接建立比较慢 或 频繁断网重连时,会出现该错误,请检查网络连接是否正常。
|
||||
ERR_SDK_NET_WAIT_SEND_TIMEOUT = 9519, // 请求包已进入 IM SDK 待发送队列,等待进入操作系统的网络层时超时。一般可能原因是本地网络受限/不通或本地网络与 IM SDK 后台连接不通。建议用不同的网络环境分别运行 IM SDK 来确认是否因当前网络环境问题引起。
|
||||
ERR_SDK_NET_WAIT_ACK_TIMEOUT = 9520, // 请求包已由 IM SDK 待发送队列进入操作系统网络层,等待服务端回包超时。一般可能原因是本地网络受限/不通或本地网络与 IM SDK 后台连接不通。建议用不同的网络环境分别运行 IM SDK 来确认是否因当前网络环境问题引起。
|
||||
ERR_SDK_NET_WAIT_SEND_REMAINING_TIMEOUT = 9521, // 请求包已进入待发送队列,部分数据已发送,等待发送剩余部分出现超时,可能上行带宽不足,请检查网络是否畅通,在回调错误时检测有联网,内部错误。
|
||||
ERR_SDK_NET_PKG_SIZE_LIMIT = 9522, // 请求包长度大于限制,最大支持 1MB 。
|
||||
ERR_SDK_NET_WAIT_SEND_TIMEOUT_NO_NETWORK = 9523, // 请求包已进入待发送队列,等待进入系统的网络 buffer 超时,数据包较多 或 发送线程处理不过来,在回调错误码时检测到没有联网。
|
||||
ERR_SDK_NET_WAIT_ACK_TIMEOUT_NO_NETWORK = 9524, // 请求包已进入系统的网络 buffer ,等待服务端回包超时,可能请求包没离开终端设备、中间路由丢弃、服务端意外丢包或回包被系统网络层丢弃,在回调错误码时检测到没有联网。
|
||||
ERR_SDK_NET_SEND_REMAINING_TIMEOUT_NO_NETWORK = 9525, // 请求包已进入待发送队列,部分数据已发送,等待发送剩余部分出现超时,可能上行带宽不足,请检查网络是否畅通,在回调错误码时检测到没有联网。
|
||||
|
||||
// ///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// (二)服务端的错误码
|
||||
//
|
||||
// ///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// 网络接入层的错误码
|
||||
|
||||
ERR_SVR_SSO_CONNECT_LIMIT = -302, // Server 的连接数量超出限制,服务端拒绝服务。
|
||||
ERR_SVR_SSO_VCODE = -10000, // 下发验证码标志错误。
|
||||
ERR_SVR_SSO_D2_EXPIRED = -10001, // Key 过期。Key 是根据 UserSig 生成的内部票据,Key 的有效期小于或等于 UserSig 的有效期。请重新调用 V2TIMManager.getInstance().login 登录接口生成新的 Key。
|
||||
ERR_SVR_SSO_A2_UP_INVALID = -10003, // Ticket 过期。Ticket 是根据 UserSig 生成的内部票据,Ticket 的有效期小于或等于 UserSig 的有效期。请重新调用 V2TIMManager.getInstance().login 登录接口生成新的 Ticket。
|
||||
ERR_SVR_SSO_A2_DOWN_INVALID = -10004, // 票据验证没通过或者被安全打击。请重新调用 V2TIMManager.getInstance().login 登录接口生成新的票据。
|
||||
ERR_SVR_SSO_EMPTY_KEY = -10005, // 不允许空 Key。
|
||||
ERR_SVR_SSO_UIN_INVALID = -10006, // Key 中的帐号和请求包头的帐号不匹配。
|
||||
ERR_SVR_SSO_VCODE_TIMEOUT = -10007, // 验证码下发超时。
|
||||
ERR_SVR_SSO_NO_IMEI_AND_A2 = -10008, // 需要带上 Key 和 Ticket。
|
||||
ERR_SVR_SSO_COOKIE_INVALID = -10009, // Cookie 检查不匹配。
|
||||
ERR_SVR_SSO_DOWN_TIP = -10101, // 下发提示语时 Key 过期。Key 是根据 UserSig 生成的内部票据,Key 的有效期小于或等于 UserSig 的有效期。请重新调用 V2TIMManager.getInstance().login 登录接口生成新的 Key。
|
||||
ERR_SVR_SSO_DISCONNECT = -10102, // 网络连接断开。
|
||||
ERR_SVR_SSO_IDENTIFIER_INVALID = -10103, // 失效身份。
|
||||
ERR_SVR_SSO_CLIENT_CLOSE = -10104, // 终端自动退出。
|
||||
ERR_SVR_SSO_MSFSDK_QUIT = -10105, // MSFSDK 自动退出。
|
||||
ERR_SVR_SSO_D2KEY_WRONG = -10106, // 解密失败次数超过阈值,通知终端需要重置,请重新调用 TIMManager.getInstance().login 登录接口生成新的 Key。
|
||||
ERR_SVR_SSO_UNSURPPORT = -10107, // 不支持聚合,给终端返回统一的错误码。终端在该 TCP 长连接上停止聚合。
|
||||
ERR_SVR_SSO_PREPAID_ARREARS = -10108, // 预付费欠费。
|
||||
ERR_SVR_SSO_PACKET_WRONG = -10109, // 请求包格式错误。
|
||||
ERR_SVR_SSO_APPID_BLACK_LIST = -10110, // SDKAppID 黑名单。
|
||||
ERR_SVR_SSO_CMD_BLACK_LIST = -10111, // SDKAppID 设置 service cmd 黑名单。
|
||||
ERR_SVR_SSO_APPID_WITHOUT_USING = -10112, // SDKAppID 停用。
|
||||
ERR_SVR_SSO_FREQ_LIMIT = -10113, // 频率限制(用户),频率限制是设置针对某一个协议的每秒请求数的限制。
|
||||
ERR_SVR_SSO_OVERLOAD = -10114, // 过载丢包(系统),连接的服务端处理过多请求,处理不过来,拒绝服务。
|
||||
ERR_SVR_SSO_FREQUENCY_LIMIT = -20009, // 终端访问接口超频。
|
||||
|
||||
// 资源文件错误码
|
||||
|
||||
ERR_SVR_RES_NOT_FOUND = 114000, // 要发送的资源文件不存在。
|
||||
ERR_SVR_RES_ACCESS_DENY = 114001, // 要发送的资源文件不允许访问。
|
||||
ERR_SVR_RES_SIZE_LIMIT = 114002, // 文件大小超过限制。
|
||||
ERR_SVR_RES_SEND_CANCEL = 114003, // 用户取消发送,如发送过程中登出等原因。
|
||||
ERR_SVR_RES_READ_FAILED = 114004, // 读取文件内容失败。
|
||||
ERR_SVR_RES_TRANSFER_TIMEOUT = 114005, // 资源文件(如图片、文件、语音、视频)传输超时,一般是网络问题导致。
|
||||
ERR_SVR_RES_INVALID_PARAMETERS = 114011, // 参数非法。
|
||||
ERR_SVR_RES_INVALID_FILE_MD5 = 115066, // 文件 MD5 校验失败。
|
||||
ERR_SVR_RES_INVALID_PART_MD5 = 115068, // 分片 MD5 校验失败。
|
||||
|
||||
// 后台公共错误码
|
||||
|
||||
ERR_SVR_COMM_INVALID_HTTP_URL = 60002, // HTTP 解析错误 ,请检查 HTTP 请求 URL 格式。
|
||||
ERR_SVR_COMM_REQ_JSON_PARSE_FAILED = 60003, // HTTP 请求 JSON 解析错误,请检查 JSON 格式。
|
||||
ERR_SVR_COMM_INVALID_ACCOUNT = 60004, // 请求 URI 或 JSON 包体中 Identifier 或 UserSig 错误。
|
||||
ERR_SVR_COMM_INVALID_ACCOUNT_EX = 60005, // 请求 URI 或 JSON 包体中 Identifier 或 UserSig 错误。
|
||||
ERR_SVR_COMM_INVALID_SDKAPPID = 60006, // SDKAppID 失效,请核对 SDKAppID 有效性。
|
||||
ERR_SVR_COMM_REST_FREQ_LIMIT = 60007, // REST 接口调用频率超过限制,请降低请求频率。
|
||||
ERR_SVR_COMM_REQUEST_TIMEOUT = 60008, // 服务请求超时或 HTTP 请求格式错误,请检查并重试。
|
||||
ERR_SVR_COMM_INVALID_RES = 60009, // 请求资源错误,请检查请求 URL。
|
||||
ERR_SVR_COMM_ID_NOT_ADMIN = 60010, // REST API 请求的 Identifier 字段请填写 App 管理员帐号。
|
||||
ERR_SVR_COMM_SDKAPPID_FREQ_LIMIT = 60011, // SDKAppID 请求频率超限,请降低请求频率。
|
||||
ERR_SVR_COMM_SDKAPPID_MISS = 60012, // REST 接口需要带 SDKAppID,请检查请求 URL 中的 SDKAppID。
|
||||
ERR_SVR_COMM_RSP_JSON_PARSE_FAILED = 60013, // HTTP 响应包 JSON 解析错误。
|
||||
ERR_SVR_COMM_EXCHANGE_ACCOUNT_TIMEUT = 60014, // 置换帐号超时。
|
||||
ERR_SVR_COMM_INVALID_ID_FORMAT = 60015, // 请求包体 Identifier 类型错误,请确认 Identifier 为字符串格式。
|
||||
ERR_SVR_COMM_SDKAPPID_FORBIDDEN = 60016, // SDKAppID 被禁用。
|
||||
ERR_SVR_COMM_REQ_FORBIDDEN = 60017, // 请求被禁用。
|
||||
ERR_SVR_COMM_REQ_FREQ_LIMIT = 60018, // 请求过于频繁,请稍后重试。
|
||||
ERR_SVR_COMM_REQ_FREQ_LIMIT_EX = 60019, // 请求过于频繁,请稍后重试。
|
||||
ERR_SVR_COMM_INVALID_SERVICE = 60020, // 未购买套餐包或购买的套餐包正在配置中暂未生效,请五分钟后再次尝试。
|
||||
ERR_SVR_COMM_SENSITIVE_TEXT = 80001, // 文本安全打击,文本中可能包含敏感词汇。
|
||||
ERR_SVR_COMM_BODY_SIZE_LIMIT = 80002, // 发消息包体过长,目前支持最大12k消息包体长度,请减少包体大小重试。
|
||||
|
||||
// 帐号错误码
|
||||
|
||||
ERR_SVR_ACCOUNT_USERSIG_EXPIRED = 70001, // UserSig 已过期,请重新生成 UserSig,建议 UserSig 有效期不小于24小时。
|
||||
ERR_SVR_ACCOUNT_USERSIG_EMPTY = 70002, // UserSig 长度为0,请检查传入的 UserSig 是否正确。
|
||||
ERR_SVR_ACCOUNT_USERSIG_CHECK_FAILED = 70003, // UserSig 校验失败,请确认下 UserSig 内容是否被截断,如缓冲区长度不够导致的内容截断。
|
||||
ERR_SVR_ACCOUNT_USERSIG_CHECK_FAILED_EX = 70005, // UserSig 校验失败,可用工具自行验证生成的 UserSig 是否正确。
|
||||
ERR_SVR_ACCOUNT_USERSIG_MISMATCH_PUBLICKEY = 70009, // 用公钥验证 UserSig 失败,请确认生成的 UserSig 使用的私钥和 SDKAppID 是否对应。
|
||||
ERR_SVR_ACCOUNT_USERSIG_MISMATCH_ID = 70013, // 请求的 Identifier 与生成 UserSig 的 Identifier 不匹配。
|
||||
ERR_SVR_ACCOUNT_USERSIG_MISMATCH_SDKAPPID = 70014, // 请求的 SDKAppID 与生成 UserSig 的 SDKAppID 不匹配。
|
||||
ERR_SVR_ACCOUNT_USERSIG_PUBLICKEY_NOT_FOUND = 70016, // 验证 UserSig 时公钥不存在。请先登录控制台下载私钥,下载私钥的具体方法可参考 [下载签名用的私钥](https://cloud.tencent.com/document/product/269/32688#.E4.B8.8B.E8.BD.BD.E7.AD.BE.E5.90.8D.E7.94.A8.E7.9A.84.E7.A7.81.E9.92.A5) 。
|
||||
ERR_SVR_ACCOUNT_SDKAPPID_NOT_FOUND = 70020, // SDKAppID 未找到,请在云通信 IM 控制台确认应用信息。
|
||||
ERR_SVR_ACCOUNT_INVALID_USERSIG = 70052, // UserSig 已经失效,请重新生成,再次尝试。
|
||||
ERR_SVR_ACCOUNT_NOT_FOUND = 70107, // 请求的用户帐号不存在。
|
||||
ERR_SVR_ACCOUNT_SEC_RSTR = 70114, // 安全原因被限制。
|
||||
ERR_SVR_ACCOUNT_INTERNAL_TIMEOUT = 70169, // 服务端内部超时,请重试。
|
||||
ERR_SVR_ACCOUNT_INVALID_COUNT = 70206, // 请求中批量数量不合法。
|
||||
ERR_SVR_ACCOUNT_INVALID_PARAMETERS = 70402, // 参数非法,请检查必填字段是否填充,或者字段的填充是否满足协议要求。
|
||||
ERR_SVR_ACCOUNT_ADMIN_REQUIRED = 70403, // 请求需要 App 管理员权限。
|
||||
ERR_SVR_ACCOUNT_FREQ_LIMIT = 70050, // 因失败且重试次数过多导致被限制,请检查 UserSig 是否正确,一分钟之后再试。
|
||||
ERR_SVR_ACCOUNT_BLACKLIST = 70051, // 帐号被拉入黑名单。
|
||||
ERR_SVR_ACCOUNT_COUNT_LIMIT = 70398, // 创建帐号数量超过免费体验版数量限制,请升级为专业版。
|
||||
ERR_SVR_ACCOUNT_INTERNAL_ERROR = 70500, // 服务端内部错误,请重试。
|
||||
ERR_SVR_ACCOUNT_USER_STATUS_DISABLED = 72001, // 用户状态能力需要登录 IM 控制台开启
|
||||
|
||||
// 资料错误码
|
||||
|
||||
ERR_SVR_PROFILE_INVALID_PARAMETERS = 40001, // 请求参数错误,请根据错误描述检查请求是否正确。
|
||||
ERR_SVR_PROFILE_ACCOUNT_MISS = 40002, // 请求参数错误,没有指定需要拉取资料的用户帐号。
|
||||
ERR_SVR_PROFILE_ACCOUNT_NOT_FOUND = 40003, // 请求的用户帐号不存在。
|
||||
ERR_SVR_PROFILE_ADMIN_REQUIRED = 40004, // 请求需要 App 管理员权限。
|
||||
ERR_SVR_PROFILE_SENSITIVE_TEXT = 40005, // 资料字段中包含敏感词。
|
||||
ERR_SVR_PROFILE_INTERNAL_ERROR = 40006, // 服务端内部错误,请稍后重试。
|
||||
ERR_SVR_PROFILE_READ_PERMISSION_REQUIRED = 40007, // 没有资料字段的读权限,详情可参见 [资料字段](https://cloud.tencent.com/document/product/269/1500#.E8.B5.84.E6.96.99.E5.AD.97.E6.AE.B5) 。
|
||||
ERR_SVR_PROFILE_WRITE_PERMISSION_REQUIRED = 40008, // 没有资料字段的写权限,详情可参见 [资料字段](https://cloud.tencent.com/document/product/269/1500#.E8.B5.84.E6.96.99.E5.AD.97.E6.AE.B5) 。
|
||||
ERR_SVR_PROFILE_TAG_NOT_FOUND = 40009, // 资料字段的 Tag 不存在。
|
||||
ERR_SVR_PROFILE_SIZE_LIMIT = 40601, // 资料字段的 Value 长度超过500字节。
|
||||
ERR_SVR_PROFILE_VALUE_ERROR = 40605, // 标配资料字段的 Value 错误,详情可参见 [标配资料字段](https://cloud.tencent.com/doc/product/269/1500#.E6.A0.87.E9.85.8D.E8.B5.84.E6.96.99.E5.AD.97.E6.AE.B5) 。
|
||||
ERR_SVR_PROFILE_INVALID_VALUE_FORMAT = 40610, // 资料字段的 Value 类型不匹配,详情可参见 [标配资料字段](https://cloud.tencent.com/doc/product/269/1500#.E6.A0.87.E9.85.8D.E8.B5.84.E6.96.99.E5.AD.97.E6.AE.B5) 。
|
||||
|
||||
// 关系链错误码
|
||||
|
||||
ERR_SVR_FRIENDSHIP_INVALID_PARAMETERS = 30001, // 请求参数错误,请根据错误描述检查请求是否正确。
|
||||
ERR_SVR_FRIENDSHIP_INVALID_SDKAPPID = 30002, // SDKAppID 不匹配。
|
||||
ERR_SVR_FRIENDSHIP_ACCOUNT_NOT_FOUND = 30003, // 请求的用户帐号不存在。
|
||||
ERR_SVR_FRIENDSHIP_ADMIN_REQUIRED = 30004, // 请求需要 App 管理员权限。
|
||||
ERR_SVR_FRIENDSHIP_SENSITIVE_TEXT = 30005, // 关系链字段中包含敏感词。
|
||||
ERR_SVR_FRIENDSHIP_INTERNAL_ERROR = 30006, // 服务端内部错误,请重试。
|
||||
ERR_SVR_FRIENDSHIP_NET_TIMEOUT = 30007, // 网络超时,请稍后重试。
|
||||
ERR_SVR_FRIENDSHIP_WRITE_CONFLICT = 30008, // 并发写导致写冲突,建议使用批量方式。
|
||||
ERR_SVR_FRIENDSHIP_ADD_FRIEND_DENY = 30009, // 后台禁止该用户发起加好友请求。
|
||||
ERR_SVR_FRIENDSHIP_COUNT_LIMIT = 30010, // 自己的好友数已达系统上限。
|
||||
ERR_SVR_FRIENDSHIP_GROUP_COUNT_LIMIT = 30011, // 分组已达系统上限。
|
||||
ERR_SVR_FRIENDSHIP_PENDENCY_LIMIT = 30012, // 未决数已达系统上限。
|
||||
ERR_SVR_FRIENDSHIP_BLACKLIST_LIMIT = 30013, // 黑名单数已达系统上限。
|
||||
ERR_SVR_FRIENDSHIP_PEER_FRIEND_LIMIT = 30014, // 对方的好友数已达系统上限。
|
||||
ERR_SVR_FRIENDSHIP_IN_SELF_BLACKLIST = 30515, // 请求添加好友时,对方在自己的黑名单中,不允许加好友。
|
||||
ERR_SVR_FRIENDSHIP_ALLOW_TYPE_DENY_ANY = 30516, // 请求添加好友时,对方的加好友验证方式是不允许任何人添加自己为好友。
|
||||
ERR_SVR_FRIENDSHIP_IN_PEER_BLACKLIST = 30525, // 请求添加好友时,自己在对方的黑名单中,不允许加好友。
|
||||
ERR_SVR_FRIENDSHIP_ALLOW_TYPE_NEED_CONFIRM = 30539, // A 请求加 B 为好友,B 的加好友验证方式被设置为“AllowType_Type_NeedConfirm”,这时 A 与 B 之间只能形成未决关系,该返回码用于标识加未决成功,以便与加好友成功的返回码区分开,调用方可以捕捉该错误给用户一个合理的提示。
|
||||
ERR_SVR_FRIENDSHIP_ADD_FRIEND_SEC_RSTR = 30540, // 添加好友请求被安全策略打击,请勿频繁发起添加好友请求。
|
||||
ERR_SVR_FRIENDSHIP_PENDENCY_NOT_FOUND = 30614, // 请求的未决不存在。
|
||||
ERR_SVR_FRIENDSHIP_DEL_NONFRIEND = 31704, // 与请求删除的帐号之间不存在好友关系。
|
||||
ERR_SVR_FRIENDSHIP_DEL_FRIEND_SEC_RSTR = 31707, // 删除好友请求被安全策略打击,请勿频繁发起删除好友请求。
|
||||
ERR_SVR_FRIENDSHIP_ACCOUNT_NOT_FOUND_EX = 31804, // 请求的用户帐号不存在。
|
||||
|
||||
// 最近联系人错误码
|
||||
|
||||
ERR_SVR_CONV_ACCOUNT_NOT_FOUND = 50001, // 请求的用户帐号不存在。
|
||||
ERR_SVR_CONV_INVALID_PARAMETERS = 50002, // 请求参数错误,请根据错误描述检查请求是否正确。
|
||||
ERR_SVR_CONV_ADMIN_REQUIRED = 50003, // 请求需要 App 管理员权限。
|
||||
ERR_SVR_CONV_INTERNAL_ERROR = 50004, // 服务端内部错误,请重试。
|
||||
ERR_SVR_CONV_NET_TIMEOUT = 50005, // 网络超时,请稍后重试。
|
||||
|
||||
ERR_SVR_CONV_CONV_MARK_REQ_COUNT_EXCEED_LIMIT = 51006, //< 一次标记、分组、设置自定义数据的会话数超过了上限(最大支持 100 个)
|
||||
ERR_SVR_CONV_CONV_MARK_OPERATE_FAILED = 51007, //< Group 会话操作异常,Server 内部错误或 Group 已经解散
|
||||
ERR_SVR_CONV_CONV_MARK_TOTAL_COUNT_EXCEED_LIMIT = 51008, //< 标记、分组、设置自定义数据的总会话数超过了上限(最大支持 1000 个)
|
||||
ERR_SVR_CONV_CONV_GROUP_NOT_EXIST = 51009, //< 会话分组不存在
|
||||
ERR_SVR_CONV_CONV_GROUP_TOTAL_COUNT_EXCEED_LIMIT = 51010, //< 会话分组数超过了上限(最大支持 20 个)
|
||||
ERR_SVR_CONV_CONV_GROUP_NAME_EXCEED_LENGTH = 51011, //< 会话分组名字节数超过了上限(最大支持 32 字节)
|
||||
|
||||
// 消息错误码
|
||||
|
||||
ERR_SVR_MSG_PKG_PARSE_FAILED = 20001, // 请求包非法,请检查发送方和接收方帐号是否存在。
|
||||
ERR_SVR_MSG_INTERNAL_AUTH_FAILED = 20002, // 内部鉴权失败。
|
||||
ERR_SVR_MSG_INVALID_ID = 20003, // Identifier 无效或者 Identifier 未导入云通信 IM。
|
||||
ERR_SVR_MSG_NET_ERROR = 20004, // 网络异常,请重试。
|
||||
ERR_SVR_MSG_INTERNAL_ERROR1 = 20005, // 服务端内部错误,请重试。
|
||||
ERR_SVR_MSG_PUSH_DENY = 20006, // 触发发送单聊消息之前回调,App 后台返回禁止下发该消息。
|
||||
ERR_SVR_MSG_IN_PEER_BLACKLIST = 20007, // 发送单聊消息,被对方拉黑,禁止发送。
|
||||
ERR_SVR_MSG_BOTH_NOT_FRIEND = 20009, // 消息发送双方互相不是好友,禁止发送(配置单聊消息校验好友关系才会出现)。
|
||||
ERR_SVR_MSG_NOT_PEER_FRIEND = 20010, // 发送单聊消息,自己不是对方的好友(单向关系),禁止发送。
|
||||
ERR_SVR_MSG_NOT_SELF_FRIEND = 20011, // 发送单聊消息,对方不是自己的好友(单向关系),禁止发送。
|
||||
ERR_SVR_MSG_SHUTUP_DENY = 20012, // 因禁言,禁止发送消息。
|
||||
ERR_SVR_MSG_REVOKE_TIME_LIMIT = 20016, // 消息撤回超过了时间限制(默认2分钟)。
|
||||
ERR_SVR_MSG_DEL_RAMBLE_INTERNAL_ERROR = 20018, // 删除漫游内部错误。
|
||||
ERR_SVR_MSG_EXTENSION_CONFLICT = 23001, // 消息扩展操作冲突。
|
||||
ERR_SVR_MSG_EXTENSION_NOT_EXIST = 23004, // 删除的消息扩展不存在。
|
||||
ERR_SVR_MSG_JSON_PARSE_FAILED = 90001, // JSON 格式解析失败,请检查请求包是否符合 JSON 规范。
|
||||
ERR_SVR_MSG_INVALID_JSON_BODY_FORMAT = 90002, // JSON 格式请求包中 MsgBody 不符合消息格式描述,或者 MsgBody 不是 Array 类型,请参考 [TIMMsgElement 对象](https://cloud.tencent.com/document/product/269/2720#.E6.B6.88.E6.81.AF.E5.85.83.E7.B4.A0timmsgelement) 的定义。
|
||||
ERR_SVR_MSG_INVALID_TO_ACCOUNT = 90003, // JSON 格式请求包体中缺少 To_Account 字段或者 To_Account 字段不是 Integer 类型
|
||||
ERR_SVR_MSG_INVALID_RAND = 90005, // JSON 格式请求包体中缺少 MsgRandom 字段或者 MsgRandom 字段不是 Integer 类型
|
||||
ERR_SVR_MSG_INVALID_TIMESTAMP = 90006, // JSON 格式请求包体中缺少 MsgTimeStamp 字段或者 MsgTimeStamp 字段不是 Integer 类型
|
||||
ERR_SVR_MSG_BODY_NOT_ARRAY = 90007, // JSON 格式请求包体中 MsgBody 类型不是 Array 类型,请将其修改为 Array 类型
|
||||
ERR_SVR_MSG_ADMIN_REQUIRED = 90009, // 请求需要 App 管理员权限。
|
||||
ERR_SVR_MSG_INVALID_JSON_FORMAT = 90010, // JSON 格式请求包不符合消息格式描述,请参考 [TIMMsgElement 对象](https://cloud.tencent.com/document/product/269/2720#.E6.B6.88.E6.81.AF.E5.85.83.E7.B4.A0timmsgelement) 的定义。
|
||||
ERR_SVR_MSG_TO_ACCOUNT_COUNT_LIMIT = 90011, // 批量发消息目标帐号超过500,请减少 To_Account 中目标帐号数量。
|
||||
ERR_SVR_MSG_TO_ACCOUNT_NOT_FOUND = 90012, // To_Account 没有注册或不存在,请确认 To_Account 是否导入云通信 IM 或者是否拼写错误。
|
||||
ERR_SVR_MSG_TIME_LIMIT = 90026, // 消息离线存储时间错误(最多不能超过7天)。
|
||||
ERR_SVR_MSG_INVALID_SYNCOTHERMACHINE = 90031, // JSON 格式请求包体中 SyncOtherMachine 字段不是 Integer 类型
|
||||
ERR_SVR_MSG_INVALID_MSGLIFETIME = 90044, // JSON 格式请求包体中 MsgLifeTime 字段不是 Integer 类型
|
||||
ERR_SVR_MSG_ACCOUNT_NOT_FOUND = 90048, // 请求的用户帐号不存在。
|
||||
ERR_SVR_MSG_INTERNAL_ERROR2 = 90994, // 服务内部错误,请重试。
|
||||
ERR_SVR_MSG_INTERNAL_ERROR3 = 90995, // 服务内部错误,请重试。
|
||||
ERR_SVR_MSG_INTERNAL_ERROR4 = 91000, // 服务内部错误,请重试。
|
||||
ERR_SVR_MSG_INTERNAL_ERROR5 = 90992, // 服务内部错误,请重试;如果所有请求都返回该错误码,且 App 配置了第三方回调,请检查 App 服务端是否正常向云通信 IM 后台服务端返回回调结果。
|
||||
ERR_SVR_MSG_BODY_SIZE_LIMIT = 93000, // JSON 数据包超长,消息包体请不要超过12k。
|
||||
ERR_SVR_MSG_LONGPOLLING_COUNT_LIMIT = 91101, // Web 端长轮询被踢(Web 端同时在线实例个数超出限制)。
|
||||
// 120001 - 130000, // 单聊第三方回调返回的自定义错误码。
|
||||
|
||||
// 群组错误码
|
||||
|
||||
ERR_SVR_GROUP_INTERNAL_ERROR = 10002, // 服务端内部错误,请重试。
|
||||
ERR_SVR_GROUP_API_NAME_ERROR = 10003, // 请求中的接口名称错误,请核对接口名称并重试。
|
||||
ERR_SVR_GROUP_INVALID_PARAMETERS = 10004, // 参数非法,请根据错误描述检查请求是否正确。
|
||||
ERR_SVR_GROUP_ACOUNT_COUNT_LIMIT = 10005, // 请求包体中携带的帐号数量过多。
|
||||
ERR_SVR_GROUP_FREQ_LIMIT = 10006, // 操作频率限制,请尝试降低调用的频率。
|
||||
ERR_SVR_GROUP_PERMISSION_DENY = 10007, // 操作权限不足,比如 Public 群组中普通成员尝试执行踢人操作,但只有 App 管理员才有权限。
|
||||
ERR_SVR_GROUP_INVALID_REQ = 10008, // 请求非法,可能是请求中携带的签名信息验证不正确,请再次尝试。
|
||||
ERR_SVR_GROUP_SUPER_NOT_ALLOW_QUIT = 10009, // 该群不允许群主主动退出。
|
||||
ERR_SVR_GROUP_NOT_FOUND = 10010, // 群组不存在,或者曾经存在过,但是目前已经被解散。
|
||||
ERR_SVR_GROUP_JSON_PARSE_FAILED = 10011, // 解析 JSON 包体失败,请检查包体的格式是否符合 JSON 格式。
|
||||
ERR_SVR_GROUP_INVALID_ID = 10012, // 发起操作的 Identifier 非法,请检查发起操作的用户 Identifier 是否填写正确。
|
||||
ERR_SVR_GROUP_ALLREADY_MEMBER = 10013, // 被邀请加入的用户已经是群成员。
|
||||
ERR_SVR_GROUP_FULL_MEMBER_COUNT = 10014, // 群已满员,无法将请求中的用户加入群组,如果是批量加人,可以尝试减少加入用户的数量。
|
||||
ERR_SVR_GROUP_INVALID_GROUPID = 10015, // 群组 ID 非法,请检查群组 ID 是否填写正确。
|
||||
ERR_SVR_GROUP_REJECT_FROM_THIRDPARTY = 10016, // App 后台通过第三方回调拒绝本次操作。
|
||||
ERR_SVR_GROUP_SHUTUP_DENY = 10017, // 因被禁言而不能发送消息,请检查发送者是否被设置禁言。
|
||||
ERR_SVR_GROUP_RSP_SIZE_LIMIT = 10018, // 应答包长度超过最大包长(1MB),请求的内容过多,请尝试减少单次请求的数据量。
|
||||
ERR_SVR_GROUP_ACCOUNT_NOT_FOUND = 10019, // 请求的用户帐号不存在。
|
||||
ERR_SVR_GROUP_GROUPID_IN_USED = 10021, // 群组 ID 已被使用,请选择其他的群组 ID。
|
||||
ERR_SVR_GROUP_SEND_MSG_FREQ_LIMIT = 10023, // 发消息的频率超限,请延长两次发消息时间的间隔。
|
||||
ERR_SVR_GROUP_REQ_ALLREADY_BEEN_PROCESSED = 10024, // 此邀请或者申请请求已经被处理。
|
||||
ERR_SVR_GROUP_GROUPID_IN_USED_FOR_SUPER = 10025, // 群组 ID 已被使用,并且操作者为群主,可以直接使用。
|
||||
ERR_SVR_GROUP_SDKAPPID_DENY = 10026, // 该 SDKAppID 请求的命令字已被禁用。
|
||||
ERR_SVR_GROUP_REVOKE_MSG_NOT_FOUND = 10030, // 请求撤回的消息不存在。
|
||||
ERR_SVR_GROUP_REVOKE_MSG_TIME_LIMIT = 10031, // 消息撤回超过了时间限制(默认2分钟)。
|
||||
ERR_SVR_GROUP_REVOKE_MSG_DENY = 10032, // 请求撤回的消息不支持撤回操作。
|
||||
ERR_SVR_GROUP_NOT_ALLOW_REVOKE_MSG = 10033, // 群组类型不支持消息撤回操作。
|
||||
ERR_SVR_GROUP_REMOVE_MSG_DENY = 10034, // 该消息类型不支持删除操作。
|
||||
ERR_SVR_GROUP_NOT_ALLOW_REMOVE_MSG = 10035, // 音视频聊天室和在线成员广播大群不支持删除消息。
|
||||
ERR_SVR_GROUP_AVCHATROOM_COUNT_LIMIT = 10036, // 音视频聊天室创建数量超过了限制,请参考 [价格说明](https://cloud.tencent.com/document/product/269/11673) 购买预付费套餐“IM音视频聊天室”。
|
||||
ERR_SVR_GROUP_COUNT_LIMIT = 10037, // 单个用户可创建和加入的群组数量超过了限制,请参考 [价格说明](https://cloud.tencent.com/document/product/269/11673) 购买或升级预付费套餐“单人可创建与加入群组数”。
|
||||
ERR_SVR_GROUP_MEMBER_COUNT_LIMIT = 10038, // 群成员数量超过限制,请参考 [价格说明](https://cloud.tencent.com/document/product/269/11673) 购买或升级预付费套餐“扩展群人数上限”。
|
||||
};
|
||||
|
||||
#endif // __V2TIM_ERROR_CODE_H__
|
||||
377
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMFriendship.h
generated
Executable file
377
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMFriendship.h
generated
Executable file
@@ -0,0 +1,377 @@
|
||||
// Copyright (c) 2021 Tencent. All rights reserved.
|
||||
|
||||
#ifndef __V2TIM_FRIENDSHIP_H__
|
||||
#define __V2TIM_FRIENDSHIP_H__
|
||||
|
||||
#include "V2TIMCommon.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// (一)枚举值定义
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/// 用户状态类型
|
||||
enum V2TIMUserStatusType {
|
||||
///< 未知状态
|
||||
V2TIM_USER_STATUS_UNKNOWN = 0,
|
||||
///< 在线状态
|
||||
V2TIM_USER_STATUS_ONLINE = 1,
|
||||
///< 离线状态
|
||||
V2TIM_USER_STATUS_OFFLINE = 2,
|
||||
///< 未登录(如主动调用 logout 接口,或者账号注册后还未登录)
|
||||
V2TIM_USER_STATUS_UNLOGINED = 3,
|
||||
};
|
||||
|
||||
/// 性别
|
||||
enum V2TIMGender {
|
||||
/// 未知性别
|
||||
V2TIM_GENDER_UNKNOWN = 0,
|
||||
/// 男性
|
||||
V2TIM_GENDER_MALE = 1,
|
||||
/// 女性
|
||||
V2TIM_GENDER_FEMALE = 2,
|
||||
};
|
||||
|
||||
/// 好友验证方式
|
||||
enum V2TIMFriendAllowType {
|
||||
/// 同意任何用户加好友
|
||||
V2TIM_FRIEND_ALLOW_ANY = 0,
|
||||
/// 需要验证
|
||||
V2TIM_FRIEND_NEED_CONFIRM = 1,
|
||||
/// 拒绝任何人加好友
|
||||
V2TIM_FRIEND_DENY_ANY = 2,
|
||||
};
|
||||
|
||||
/// 好友申请类型
|
||||
enum V2TIMFriendApplicationType {
|
||||
/// 别人发给我的
|
||||
V2TIM_FRIEND_APPLICATION_COME_IN = 1,
|
||||
/// 我发给别人的
|
||||
V2TIM_FRIEND_APPLICATION_SEND_OUT = 2,
|
||||
/// 别人发给我的 和 我发给别人的。仅拉取时有效
|
||||
V2TIM_FRIEND_APPLICATION_BOTH = 3,
|
||||
};
|
||||
|
||||
/// 好友类型
|
||||
enum V2TIMFriendType {
|
||||
/// 单向好友
|
||||
V2TIM_FRIEND_TYPE_SINGLE = 1,
|
||||
/// 双向好友
|
||||
V2TIM_FRIEND_TYPE_BOTH = 2,
|
||||
};
|
||||
|
||||
/// 好友关系类型
|
||||
enum V2TIMFriendRelationType {
|
||||
/// 不是好友
|
||||
V2TIM_FRIEND_RELATION_TYPE_NONE = 0x0,
|
||||
/// 对方在我的好友列表中
|
||||
V2TIM_FRIEND_RELATION_TYPE_IN_MY_FRIEND_LIST = 0x1,
|
||||
/// 我在对方的好友列表中
|
||||
V2TIM_FRIEND_RELATION_TYPE_IN_OTHER_FRIEND_LIST = 0x2,
|
||||
/// 互为好友
|
||||
V2TIM_FRIEND_RELATION_TYPE_BOTH_WAY = 0x3,
|
||||
};
|
||||
|
||||
/// 好友申请接受类型
|
||||
enum V2TIMFriendAcceptType {
|
||||
/// 接受加好友(建立单向好友)
|
||||
V2TIM_FRIEND_ACCEPT_AGREE = 0,
|
||||
/// 接受加好友并加对方为好友(建立双向好友)
|
||||
V2TIM_FRIEND_ACCEPT_AGREE_AND_ADD = 1,
|
||||
};
|
||||
|
||||
// 用户资料修改标记
|
||||
enum V2TIMUserInfoModifyFlag {
|
||||
// 未定义
|
||||
V2TIM_USER_INFO_MODIFY_FLAG_UNKNOWN = 0,
|
||||
// 昵称
|
||||
V2TIM_USER_INFO_MODIFY_FLAG_NICK = 1,
|
||||
// 头像
|
||||
V2TIM_USER_INFO_MODIFY_FLAG_FACE_URL = 2,
|
||||
// 性别
|
||||
V2TIM_USER_INFO_MODIFY_FLAG_GENDER = 3,
|
||||
// 生日
|
||||
V2TIM_USER_INFO_MODIFY_FLAG_BIRTHDAY = 4,
|
||||
// 修改签名
|
||||
V2TIM_USER_INFO_MODIFY_FLAG_SELF_SIGNATURE = 7,
|
||||
// 等级
|
||||
V2TIM_USER_INFO_MODIFY_FLAG_LEVEL = 8,
|
||||
// 角色
|
||||
V2TIM_USER_INFO_MODIFY_FLAG_ROLE = 9,
|
||||
// 好友验证方式
|
||||
V2TIM_USER_INFO_MODIFY_FLAG_ALLOW_TYPE = 10,
|
||||
// 自定义字段
|
||||
V2TIM_USER_INFO_MODIFY_FLAG_CUSTOM = 11,
|
||||
};
|
||||
|
||||
// 好友资料修改标记
|
||||
enum V2TIMFriendInfoModifyFlag {
|
||||
// 未定义
|
||||
V2TIM_FRIEND_INFO_MODIFY_FLAG_UNKNOWN = 0,
|
||||
// 好友备注
|
||||
V2TIM_FRIEND_INFO_MODIFY_FLAG_REMARK = 1,
|
||||
// 好友自定义字段
|
||||
V2TIM_FRIEND_INFO_MODIFY_FLAG_CUSTOM = 2,
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// (二)结构体定义
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/// 用户基本资料
|
||||
struct TIM_API V2TIMUserInfo {
|
||||
/// 用户 ID
|
||||
V2TIMString userID;
|
||||
/// 用户昵称
|
||||
V2TIMString nickName;
|
||||
/// 用户头像
|
||||
V2TIMString faceURL;
|
||||
|
||||
V2TIMUserInfo();
|
||||
V2TIMUserInfo(const V2TIMUserInfo& userInfo);
|
||||
virtual ~V2TIMUserInfo();
|
||||
};
|
||||
|
||||
/// 用户详细资料
|
||||
struct TIM_API V2TIMUserFullInfo : public V2TIMUserInfo {
|
||||
/// 用户签名
|
||||
V2TIMString selfSignature;
|
||||
/// 用户性别
|
||||
V2TIMGender gender;
|
||||
/// 用户角色
|
||||
uint32_t role;
|
||||
/// 用户等级
|
||||
uint32_t level;
|
||||
/// 出生日期
|
||||
uint32_t birthday;
|
||||
/// 用户好友验证方式
|
||||
V2TIMFriendAllowType allowType;
|
||||
/// 用户自定义字段
|
||||
/// 首先要在 [控制台](https://console.cloud.tencent.com/im) (功能配置 -> 用户自定义字段)
|
||||
/// 配置用户自定义字段,然后再调用该接口进行设置,key 值不需要加 Tag_Profile_Custom_ 前缀。
|
||||
V2TIMCustomInfo customInfo;
|
||||
// 用户资料修改标记位
|
||||
// 枚举 V2TIMUserInfoModifyFlag 列出哪些字段支持修改,如果您修改用户资料,请设置这个字段值
|
||||
// 支持同时修改多个字段,多个枚举值按位或 | 组合,例如,同时修改用户昵称和用户签名
|
||||
// info.nickName = "new nickname";
|
||||
// info.selfSignature = "new self signature";
|
||||
// info.modifyFlag = V2TIM_USER_INFO_MODIFY_FLAG_NICK | V2TIM_USER_INFO_MODIFY_FLAG_SELF_SIGNATURE;
|
||||
uint32_t modifyFlag;
|
||||
|
||||
V2TIMUserFullInfo();
|
||||
V2TIMUserFullInfo(const V2TIMUserFullInfo& userFullInfo);
|
||||
~V2TIMUserFullInfo() override;
|
||||
};
|
||||
|
||||
DEFINE_VECTOR(V2TIMUserFullInfo)
|
||||
typedef TXV2TIMUserFullInfoVector V2TIMUserFullInfoVector;
|
||||
|
||||
// 用户状态
|
||||
struct TIM_API V2TIMUserStatus {
|
||||
/// 用户的 ID
|
||||
V2TIMString userID;
|
||||
|
||||
/// 用户的状态
|
||||
V2TIMUserStatusType statusType;
|
||||
|
||||
/// 用户的自定义状态, 最大 50 字节
|
||||
V2TIMString customStatus;
|
||||
|
||||
V2TIMUserStatus();
|
||||
V2TIMUserStatus(const V2TIMUserStatus &);
|
||||
~V2TIMUserStatus();
|
||||
};
|
||||
|
||||
DEFINE_VECTOR(V2TIMUserStatus)
|
||||
typedef TXV2TIMUserStatusVector V2TIMUserStatusVector;
|
||||
|
||||
/// 好友资料
|
||||
struct TIM_API V2TIMFriendInfo {
|
||||
/// 好友 ID
|
||||
V2TIMString userID;
|
||||
/// 好友备注
|
||||
/// 备注长度最长不得超过 96 个字节;
|
||||
/// 字段描述详见
|
||||
/// [控制台](https://cloud.tencent.com/document/product/269/1501#.E6.A0.87.E9.85.8D.E5.A5.BD.E5.8F.8B.E5.AD.97.E6.AE.B5)。
|
||||
V2TIMString friendRemark;
|
||||
/// 好友添加时间
|
||||
uint64_t friendAddTime;
|
||||
/// 好友自定义字段
|
||||
/// 首先要在 [控制台](https://console.cloud.tencent.com/im) (功能配置 -> 好友自定义字段)
|
||||
/// 配置好友自定义字段,然后再调用该接口进行设置,key 值不需要加 Tag_SNS_Custom_ 前缀。
|
||||
V2TIMCustomInfo friendCustomInfo;
|
||||
/// 好友所在分组列表
|
||||
/// - 最多支持 32 个分组;
|
||||
/// - 不允许分组名为空;
|
||||
/// - 分组名长度不得超过 30 个字节;
|
||||
/// - 同一个好友可以有多个不同的分组。
|
||||
/// - 字段描述详见
|
||||
/// [控制台](https://cloud.tencent.com/document/product/269/1501#.E6.A0.87.E9.85.8D.E5.A5.BD.E5.8F.8B.E5.AD.97.E6.AE.B5)。
|
||||
V2TIMStringVector friendGroups;
|
||||
/// 好友个人资料
|
||||
V2TIMUserFullInfo userFullInfo;
|
||||
// 用户资料修改标记位
|
||||
// 枚举 V2TIMFriendInfoModifyFlag 列出哪些字段支持修改,如果您修改好友资料,请设置这个字段值
|
||||
// 支持同时修改多个字段,多个枚举值按位或 | 组合,例如,同时修改好友备注和好友自定义字段
|
||||
// info.friendRemark = "new friend remark";
|
||||
// info.friendCustomInfo = friendCustomInfo;
|
||||
// info.modifyFlag = V2TIM_FRIEND_INFO_MODIFY_FLAG_REMARK | V2TIM_FRIEND_INFO_MODIFY_FLAG_CUSTOM;
|
||||
uint32_t modifyFlag;
|
||||
|
||||
V2TIMFriendInfo();
|
||||
V2TIMFriendInfo(const V2TIMFriendInfo& friendInfo);
|
||||
~V2TIMFriendInfo();
|
||||
};
|
||||
|
||||
DEFINE_VECTOR(V2TIMFriendInfo)
|
||||
typedef TXV2TIMFriendInfoVector V2TIMFriendInfoVector;
|
||||
|
||||
/// 好友资料获取结果
|
||||
struct TIM_API V2TIMFriendInfoResult {
|
||||
/// 返回码
|
||||
int resultCode;
|
||||
/// 返结果表述
|
||||
V2TIMString resultInfo;
|
||||
/// 好友类型
|
||||
V2TIMFriendRelationType relation;
|
||||
/// 好友个人资料,如果不是好友,除了 userID 字段,其他字段都为空
|
||||
V2TIMFriendInfo friendInfo;
|
||||
|
||||
V2TIMFriendInfoResult();
|
||||
V2TIMFriendInfoResult(const V2TIMFriendInfoResult& friendInfoResult);
|
||||
~V2TIMFriendInfoResult();
|
||||
};
|
||||
|
||||
DEFINE_VECTOR(V2TIMFriendInfoResult)
|
||||
typedef TXV2TIMFriendInfoResultVector V2TIMFriendInfoResultVector;
|
||||
|
||||
/// 加好友
|
||||
struct TIM_API V2TIMFriendAddApplication {
|
||||
/// 用户 userID(必填)
|
||||
V2TIMString userID;
|
||||
/// 备注(备注最大96字节)
|
||||
V2TIMString friendRemark;
|
||||
/// 预分组名(最大96字节)
|
||||
V2TIMString friendGroup;
|
||||
/// 请求说明(最大120字节)
|
||||
V2TIMString addWording;
|
||||
/// 添加来源
|
||||
V2TIMString addSource;
|
||||
/// 加好友方式
|
||||
V2TIMFriendType addType;
|
||||
|
||||
V2TIMFriendAddApplication();
|
||||
V2TIMFriendAddApplication(const V2TIMFriendAddApplication& friendAddApplication);
|
||||
~V2TIMFriendAddApplication();
|
||||
};
|
||||
|
||||
/// 好友申请
|
||||
struct TIM_API V2TIMFriendApplication {
|
||||
/// 用户标识
|
||||
V2TIMString userID;
|
||||
/// 用户昵称
|
||||
V2TIMString nickName;
|
||||
/// 用户头像
|
||||
V2TIMString faceUrl;
|
||||
/// 添加时间
|
||||
uint64_t addTime;
|
||||
/// 来源
|
||||
V2TIMString addSource;
|
||||
/// 加好友附言
|
||||
V2TIMString addWording;
|
||||
/// 好友申请类型
|
||||
V2TIMFriendApplicationType type;
|
||||
|
||||
V2TIMFriendApplication();
|
||||
V2TIMFriendApplication(const V2TIMFriendApplication& friendApplication);
|
||||
~V2TIMFriendApplication();
|
||||
};
|
||||
|
||||
DEFINE_VECTOR(V2TIMFriendApplication)
|
||||
typedef TXV2TIMFriendApplicationVector V2TIMFriendApplicationVector;
|
||||
|
||||
/// 好友申请列表
|
||||
struct TIM_API V2TIMFriendApplicationResult {
|
||||
/// 好友申请未读数量
|
||||
uint64_t unreadCount;
|
||||
/// 好友申请列表
|
||||
V2TIMFriendApplicationVector applicationList;
|
||||
|
||||
V2TIMFriendApplicationResult();
|
||||
V2TIMFriendApplicationResult(const V2TIMFriendApplicationResult& friendApplicationResult);
|
||||
~V2TIMFriendApplicationResult();
|
||||
};
|
||||
|
||||
/// 好友关系链检查结果
|
||||
struct TIM_API V2TIMFriendCheckResult {
|
||||
/// 用户id
|
||||
V2TIMString userID;
|
||||
/// 返回码
|
||||
int32_t resultCode;
|
||||
/// 返回信息
|
||||
V2TIMString resultInfo;
|
||||
/// 检查结果
|
||||
V2TIMFriendRelationType relationType;
|
||||
|
||||
V2TIMFriendCheckResult();
|
||||
V2TIMFriendCheckResult(const V2TIMFriendCheckResult& friendCheckResult);
|
||||
~V2TIMFriendCheckResult();
|
||||
};
|
||||
|
||||
DEFINE_VECTOR(V2TIMFriendCheckResult)
|
||||
typedef TXV2TIMFriendCheckResultVector V2TIMFriendCheckResultVector;
|
||||
|
||||
/// 好友操作结果(添加、删除、加黑名单、添加分组等)
|
||||
struct TIM_API V2TIMFriendOperationResult {
|
||||
/// 用户Id
|
||||
V2TIMString userID;
|
||||
/// 返回码
|
||||
int32_t resultCode;
|
||||
/// 返回信息
|
||||
V2TIMString resultInfo;
|
||||
|
||||
V2TIMFriendOperationResult();
|
||||
V2TIMFriendOperationResult(const V2TIMFriendOperationResult& friendOperationResult);
|
||||
~V2TIMFriendOperationResult();
|
||||
};
|
||||
|
||||
DEFINE_VECTOR(V2TIMFriendOperationResult)
|
||||
typedef TXV2TIMFriendOperationResultVector V2TIMFriendOperationResultVector;
|
||||
|
||||
/// 好友分组
|
||||
struct TIM_API V2TIMFriendGroup {
|
||||
/// 好友分组名称
|
||||
V2TIMString groupName;
|
||||
/// 分组成员数量
|
||||
uint64_t userCount;
|
||||
/// 分组成员列表
|
||||
V2TIMStringVector friendList;
|
||||
|
||||
V2TIMFriendGroup();
|
||||
V2TIMFriendGroup(const V2TIMFriendGroup& friendGroup);
|
||||
~V2TIMFriendGroup();
|
||||
};
|
||||
|
||||
DEFINE_VECTOR(V2TIMFriendGroup)
|
||||
typedef TXV2TIMFriendGroupVector V2TIMFriendGroupVector;
|
||||
|
||||
// 好友搜索
|
||||
struct TIM_API V2TIMFriendSearchParam {
|
||||
/// 搜索的关键字列表,关键字列表最多支持 5 个
|
||||
V2TIMStringVector keywordList;
|
||||
/// 设置是否搜索 userID
|
||||
bool isSearchUserID;
|
||||
/// 是否设置搜索昵称
|
||||
bool isSearchNickName;
|
||||
/// 是否设置搜索备注
|
||||
bool isSearchRemark;
|
||||
|
||||
V2TIMFriendSearchParam();
|
||||
V2TIMFriendSearchParam(const V2TIMFriendSearchParam& friendSearchParam);
|
||||
~V2TIMFriendSearchParam();
|
||||
};
|
||||
|
||||
#endif /* __V2TIM_FRIENDSHIP_H__ */
|
||||
242
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMFriendshipManager.h
generated
Executable file
242
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMFriendshipManager.h
generated
Executable file
@@ -0,0 +1,242 @@
|
||||
// Copyright (c) 2021 Tencent. All rights reserved.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 腾讯云通信服务 IMSDK
|
||||
//
|
||||
// 关系链接口,里面包含了好友的添加、删除,黑名单的添加、删除等逻辑
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __V2TIM_FRIENDSHIP_MANAGER_H__
|
||||
#define __V2TIM_FRIENDSHIP_MANAGER_H__
|
||||
|
||||
#include "V2TIMCallback.h"
|
||||
#include "V2TIMDefine.h"
|
||||
#include "V2TIMFriendship.h"
|
||||
#include "V2TIMListener.h"
|
||||
|
||||
/**
|
||||
* ## 关系链接口,包含了好友的添加和删除,黑名单的添加和删除等逻辑
|
||||
*/
|
||||
class TIM_API V2TIMFriendshipManager {
|
||||
public:
|
||||
virtual ~V2TIMFriendshipManager() {}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 关系链和用户资料监听器
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 1.1 添加关系链监听器
|
||||
*/
|
||||
virtual void AddFriendListener(V2TIMFriendshipListener* listener) = 0;
|
||||
|
||||
/**
|
||||
* 1.2 移除关系链监听器
|
||||
*/
|
||||
virtual void RemoveFriendListener(V2TIMFriendshipListener* listener) = 0;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 好友添加、删除、列表获取、资料设置接口函数
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 2.1 获取好友列表
|
||||
*/
|
||||
virtual void GetFriendList(V2TIMValueCallback<V2TIMFriendInfoVector>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 2.2 获取指定好友资料
|
||||
*
|
||||
* @param userIDList 好友 userID 列表
|
||||
* - ID 建议一次最大 100
|
||||
* 个,因为数量过多可能会导致数据包太大被后台拒绝,后台限制数据包最大为 1M。
|
||||
*/
|
||||
virtual void GetFriendsInfo(const V2TIMStringVector& userIDList,
|
||||
V2TIMValueCallback<V2TIMFriendInfoResultVector>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 2.3 设置指定好友资料
|
||||
*/
|
||||
virtual void SetFriendInfo(const V2TIMFriendInfo& info, V2TIMCallback* callback) = 0;
|
||||
|
||||
/**
|
||||
* 2.4 搜索好友(5.4.666 及以上版本支持,需要您购买旗舰版套餐)
|
||||
* @note
|
||||
* - 接口返回本地存储的用户资料,可以根据 V2TIMFriendInfoResult 中的 getRelation 来判断是否为好友。
|
||||
* - 该功能为 IM 旗舰版功能,[购买旗舰版套餐包](https://buy.cloud.tencent.com/avc?from=17474)后可使用,详见[价格说明](https://cloud.tencent.com/document/product/269/11673?from=17176#.E5.9F.BA.E7.A1.80.E6.9C.8D.E5.8A.A1.E8.AF.A6.E6.83.85)
|
||||
*/
|
||||
virtual void SearchFriends(const V2TIMFriendSearchParam& searchParam,
|
||||
V2TIMValueCallback<V2TIMFriendInfoResultVector>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 2.5 添加好友
|
||||
*/
|
||||
virtual void AddFriend(const V2TIMFriendAddApplication& application,
|
||||
V2TIMValueCallback<V2TIMFriendOperationResult>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 2.6 删除好友
|
||||
*
|
||||
* @param userIDList 要删除的好友 userID 列表
|
||||
* - ID 建议一次最大 100
|
||||
* 个,因为数量过多可能会导致数据包太大被后台拒绝,后台限制数据包最大为 1M。
|
||||
* @param deleteType 删除类型
|
||||
* - @ref V2TIM_FRIEND_TYPE_SINGLE:单向好友
|
||||
* - @ref V2TIM_FRIEND_TYPE_BOTH:双向好友
|
||||
*/
|
||||
virtual void DeleteFromFriendList(
|
||||
const V2TIMStringVector& userIDList, V2TIMFriendType deleteType,
|
||||
V2TIMValueCallback<V2TIMFriendOperationResultVector>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 2.7 检查指定用户的好友关系
|
||||
*
|
||||
* @param userIDList 要检查的 userID 列表
|
||||
* @param checkType 检查类型 (单向好友检查、双向好友检查)
|
||||
*
|
||||
* @note checkType 的使用需要注意:
|
||||
* - checkType 如果传入
|
||||
* V2TIM_FRIEND_TYPE_SINGLE,结果返回:V2TIM_FRIEND_RELATION_TYPE_NONE、V2TIM_FRIEND_RELATION_TYPE_IN_MY_FRIEND_LIST
|
||||
* 两种情况
|
||||
* - checkType 如果传入
|
||||
* V2TIM_FRIEND_TYPE_BOTH,结果返回:V2TIM_FRIEND_RELATION_TYPE_NONE、V2TIM_FRIEND_RELATION_TYPE_IN_MY_FRIEND_LIST、
|
||||
* V2TIM_FRIEND_RELATION_TYPE_IN_OTHER_FRIEND_LIST、V2TIM_FRIEND_RELATION_TYPE_BOTH_WAY
|
||||
* 四种情况
|
||||
*/
|
||||
virtual void CheckFriend(const V2TIMStringVector& userIDList, V2TIMFriendType checkType,
|
||||
V2TIMValueCallback<V2TIMFriendCheckResultVector>* callback) = 0;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 好友申请、删除接口函数
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 3.1 获取好友申请列表
|
||||
*
|
||||
* @note
|
||||
* - 好友申请列表包括发起的好友申请和收到的好友申请。
|
||||
* - 最多支持100个。
|
||||
*/
|
||||
virtual void GetFriendApplicationList(
|
||||
V2TIMValueCallback<V2TIMFriendApplicationResult>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 3.2 同意好友申请
|
||||
*
|
||||
* @param application 好友申请信息,GetFriendApplicationList 成功后会返回
|
||||
* @param responseType 建立单向/双向好友关系
|
||||
*/
|
||||
virtual void AcceptFriendApplication(
|
||||
const V2TIMFriendApplication& application, V2TIMFriendAcceptType acceptType,
|
||||
V2TIMValueCallback<V2TIMFriendOperationResult>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 3.3 拒绝好友申请
|
||||
*
|
||||
* @param application 好友申请信息,@ref GetFriendApplicationList 成功后会返回
|
||||
*/
|
||||
virtual void RefuseFriendApplication(
|
||||
const V2TIMFriendApplication& application,
|
||||
V2TIMValueCallback<V2TIMFriendOperationResult>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 3.4 删除好友申请
|
||||
*
|
||||
* @param application 好友申请信息,@ref GetFriendApplicationList 成功后会返回
|
||||
*/
|
||||
virtual void DeleteFriendApplication(const V2TIMFriendApplication& application,
|
||||
V2TIMCallback* callback) = 0;
|
||||
|
||||
/**
|
||||
* 3.5 设置好友申请已读
|
||||
*/
|
||||
virtual void SetFriendApplicationRead(V2TIMCallback* callback) = 0;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 黑名单接口函数
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 4.1 添加用户到黑名单
|
||||
*/
|
||||
virtual void AddToBlackList(const V2TIMStringVector& userIDList,
|
||||
V2TIMValueCallback<V2TIMFriendOperationResultVector>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 4.2 把用户从黑名单中删除
|
||||
*/
|
||||
virtual void DeleteFromBlackList(
|
||||
const V2TIMStringVector& userIDList,
|
||||
V2TIMValueCallback<V2TIMFriendOperationResultVector>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 4.3 获取黑名单列表
|
||||
*/
|
||||
virtual void GetBlackList(V2TIMValueCallback<V2TIMFriendInfoVector>* callback) = 0;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 好友分组接口函数
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 5.1 新建好友分组
|
||||
*
|
||||
* @param groupName 分组名称
|
||||
* @param userIDList 要添加到分组中的好友 userID 列表
|
||||
*/
|
||||
virtual void CreateFriendGroup(
|
||||
const V2TIMString& groupName, const V2TIMStringVector& userIDList,
|
||||
V2TIMValueCallback<V2TIMFriendOperationResultVector>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 5.2 获取分组信息
|
||||
*
|
||||
* @param groupNameList 要获取信息的好友分组名称列表,传入 传入空的 V2TIMStringVector 获得所有分组信息
|
||||
*/
|
||||
virtual void GetFriendGroups(const V2TIMStringVector& groupNameList,
|
||||
V2TIMValueCallback<V2TIMFriendGroupVector>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 5.3 删除好友分组
|
||||
*/
|
||||
virtual void DeleteFriendGroup(const V2TIMStringVector& groupNameList,
|
||||
V2TIMCallback* callback) = 0;
|
||||
|
||||
/**
|
||||
* ## 修改好友分组的名称
|
||||
*
|
||||
* @param oldName 旧的分组名称
|
||||
* @param newName 新的分组名称
|
||||
* @param callback 回调
|
||||
*/
|
||||
virtual void RenameFriendGroup(const V2TIMString& oldName, const V2TIMString& newName,
|
||||
V2TIMCallback* callback) = 0;
|
||||
|
||||
/**
|
||||
* 5.4 添加好友到一个好友分组
|
||||
*/
|
||||
virtual void AddFriendsToFriendGroup(
|
||||
const V2TIMString& groupName, const V2TIMStringVector& userIDList,
|
||||
V2TIMValueCallback<V2TIMFriendOperationResultVector>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 5.5 从好友分组中删除好友
|
||||
*/
|
||||
virtual void DeleteFriendsFromFriendGroup(
|
||||
const V2TIMString& groupName, const V2TIMStringVector& userIDList,
|
||||
V2TIMValueCallback<V2TIMFriendOperationResultVector>* callback) = 0;
|
||||
};
|
||||
|
||||
#endif // __V2TIM_FRIENDSHIP_MANAGER_H__
|
||||
594
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMGroup.h
generated
Executable file
594
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMGroup.h
generated
Executable file
@@ -0,0 +1,594 @@
|
||||
// Copyright (c) 2021 Tencent. All rights reserved.
|
||||
|
||||
#ifndef __V2TIM_GROUP_H__
|
||||
#define __V2TIM_GROUP_H__
|
||||
|
||||
#include "V2TIMCommon.h"
|
||||
#include "V2TIMDefine.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// (一)枚举值定义
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/// 群成员角色
|
||||
enum V2TIMGroupMemberRole {
|
||||
/// 未定义(没有获取该字段)
|
||||
V2TIM_GROUP_MEMBER_UNDEFINED = 0,
|
||||
/// 群成员
|
||||
V2TIM_GROUP_MEMBER_ROLE_MEMBER = 200,
|
||||
/// 群管理员
|
||||
V2TIM_GROUP_MEMBER_ROLE_ADMIN = 300,
|
||||
/// 群主
|
||||
V2TIM_GROUP_MEMBER_ROLE_SUPER = 400,
|
||||
};
|
||||
|
||||
/// 群变更信息 Tips 类型
|
||||
enum V2TIMGroupInfoChangeType {
|
||||
/// 群名修改
|
||||
V2TIM_GROUP_INFO_CHANGE_TYPE_NAME = 0x01,
|
||||
/// 群简介修改
|
||||
V2TIM_GROUP_INFO_CHANGE_TYPE_INTRODUCTION = 0x02,
|
||||
/// 群公告修改
|
||||
V2TIM_GROUP_INFO_CHANGE_TYPE_NOTIFICATION = 0x03,
|
||||
/// 群头像修改
|
||||
V2TIM_GROUP_INFO_CHANGE_TYPE_FACE = 0x04,
|
||||
/// 群主变更
|
||||
V2TIM_GROUP_INFO_CHANGE_TYPE_OWNER = 0x05,
|
||||
/// 群自定义字段变更
|
||||
V2TIM_GROUP_INFO_CHANGE_TYPE_CUSTOM = 0x06,
|
||||
///< 全员禁言字段变更
|
||||
V2TIM_GROUP_INFO_CHANGE_TYPE_SHUT_UP_ALL = 0x08,
|
||||
///< 消息接收选项变更
|
||||
V2TIM_GROUP_INFO_CHANGE_TYPE_RECEIVE_MESSAGE_OPT = 0x0A,
|
||||
///< 申请加群方式下管理员审批选项变更
|
||||
V2TIM_GROUP_INFO_CHANGE_TYPE_GROUP_ADD_OPT = 0x0B,
|
||||
///< 邀请进群方式下管理员审批选项变更
|
||||
V2TIM_GROUP_INFO_CHANGE_TYPE_GROUP_APPROVE_OPT = 0x0C,
|
||||
};
|
||||
|
||||
/// 加群选项
|
||||
enum V2TIMGroupAddOpt {
|
||||
/// 禁止加群
|
||||
V2TIM_GROUP_ADD_FORBID = 0,
|
||||
/// 需要管理员审批
|
||||
V2TIM_GROUP_ADD_AUTH = 1,
|
||||
/// 任何人可以加入
|
||||
V2TIM_GROUP_ADD_ANY = 2,
|
||||
};
|
||||
|
||||
// 群资料修改标记位
|
||||
enum V2TIMGroupInfoModifyFlag {
|
||||
// 未定义
|
||||
V2TIM_GROUP_INFO_MODIFY_FLAG_UNKNOWN = 0x00,
|
||||
// 名称
|
||||
V2TIM_GROUP_INFO_MODIFY_FLAG_GROUP_NAME = 0x01,
|
||||
// 公告
|
||||
V2TIM_GROUP_INFO_MODIFY_FLAG_NOTIFICATION = 0x01 << 1,
|
||||
// 简介
|
||||
V2TIM_GROUP_INFO_MODIFY_FLAG_INTRODUCTION = 0x01 << 2,
|
||||
// 头像
|
||||
V2TIM_GROUP_INFO_MODIFY_FLAG_FACE_URL = 0x01 << 3,
|
||||
// 申请加群管理员审批选项
|
||||
V2TIM_GROUP_INFO_MODIFY_FLAG_GROUP_ADD_OPTION = 0x01 << 4,
|
||||
// 禁言
|
||||
V2TIM_GROUP_INFO_MODIFY_FLAG_SHUTUP_ALL = 0x01 << 8,
|
||||
// 群自定义数据
|
||||
V2TIM_GROUP_INFO_MODIFY_FLAG_CUSTOM_INFO = 0x01 << 9,
|
||||
// 话题自定义字段
|
||||
V2TIM_TOPIC_INFO_MODIFY_FLAG_CUSTOM_STRING = 0x1 << 11,
|
||||
// 邀请进群管理员审批选项
|
||||
V2TIM_GROUP_INFO_MODIFY_FLAG_GROUP_APPROVE_OPTION = 0x1 << 12,
|
||||
};
|
||||
|
||||
/// 群组操作结果
|
||||
enum V2TIMGroupMemberResult {
|
||||
/// 操作失败
|
||||
V2TIM_GROUP_MEMBER_RESULT_FAIL = 0,
|
||||
/// 操作成功
|
||||
V2TIM_GROUP_MEMBER_RESULT_SUCC = 1,
|
||||
/// 无效操作,加群时已经是群成员,移除群组时不在群内
|
||||
V2TIM_GROUP_MEMBER_RESULT_INVALID = 2,
|
||||
/// 等待处理,邀请入群时等待审批
|
||||
V2TIM_GROUP_MEMBER_RESULT_PENDING = 3,
|
||||
/// 操作失败,创建群指定初始群成员列表或邀请入群时,被邀请者加入的群总数超限
|
||||
V2TIM_GROUP_MEMBER_RESULT_OVERLIMIT = 4,
|
||||
};
|
||||
|
||||
/// 群成员角色过滤方式
|
||||
enum V2TIMGroupMemberFilter {
|
||||
/// 全部成员
|
||||
V2TIM_GROUP_MEMBER_FILTER_ALL = 0x00,
|
||||
/// 群主
|
||||
V2TIM_GROUP_MEMBER_FILTER_OWNER = 0x01,
|
||||
/// 管理员
|
||||
V2TIM_GROUP_MEMBER_FILTER_ADMIN = 0x02,
|
||||
/// 普通成员
|
||||
V2TIM_GROUP_MEMBER_FILTER_COMMON = 0x04,
|
||||
};
|
||||
|
||||
// 群成员资料修改标记位
|
||||
enum V2TIMGroupMemberInfoModifyFlag {
|
||||
// 未定义
|
||||
V2TIM_GROUP_MEMBER_INFO_MODIFY_FLAG_UNKNOWN = 0x00,
|
||||
// 群内角色
|
||||
V2TIM_GROUP_MEMBER_INFO_MODIFY_FLAG_MEMBER_ROLE = 0x01 << 1,
|
||||
// 禁言时间
|
||||
V2TIM_GROUP_MEMBER_INFO_MODIFY_FLAG_SHUTUP_TIME = 0x01 << 2,
|
||||
// 群名片
|
||||
V2TIM_GROUP_MEMBER_INFO_MODIFY_FLAG_NAME_CARD = 0x01 << 3,
|
||||
// 群成员自定义数据
|
||||
V2TIM_GROUP_MEMBER_INFO_MODIFY_FLAG_CUSTOM_INFO = 0x01 << 4,
|
||||
};
|
||||
|
||||
/// 群组未决请求类型
|
||||
enum V2TIMGroupApplicationType {
|
||||
/// 申请入群
|
||||
V2TIM_GROUP_JOIN_APPLICATION_NEED_APPROVED_BY_ADMIN = 0x0,
|
||||
/// 等待被邀请者同意的邀请入群请求
|
||||
V2TIM_GROUP_INVITE_APPLICATION_NEED_APPROVED_BY_INVITEE = 0x1,
|
||||
/// 等待被群主或管理员审批的邀请入群请求
|
||||
V2TIM_GROUP_INVITE_APPLICATION_NEED_APPROVED_BY_ADMIN = 0x2,
|
||||
};
|
||||
|
||||
/// 群组已决标志
|
||||
enum V2TIMGroupApplicationHandleStatus {
|
||||
/// 未处理
|
||||
V2TIM_GROUP_APPLICATION_HANDLE_STATUS_UNHANDLED = 0,
|
||||
/// 被他人处理
|
||||
V2TIM_GROUP_APPLICATION_HANDLE_STATUS_HANDLED_BY_OTHER = 1,
|
||||
/// 自己已处理
|
||||
V2TIM_GROUP_APPLICATION_HANDLE_STATUS_HANDLED_BY_SELF = 2,
|
||||
};
|
||||
|
||||
/// 群组已决结果
|
||||
enum V2TIMGroupApplicationHandleResult {
|
||||
/// 拒绝申请
|
||||
V2TIM_GROUP_APPLICATION_HANDLE_RESULT_REFUSE = 0,
|
||||
/// 同意申请
|
||||
V2TIM_GROUP_APPLICATION_HANDLE_RESULT_AGREE = 1,
|
||||
};
|
||||
|
||||
/// @ 类型
|
||||
enum V2TIMGroupAtType {
|
||||
///< @ 我
|
||||
V2TIM_AT_ME = 1,
|
||||
///< @ 群里所有人
|
||||
V2TIM_AT_ALL = 2,
|
||||
///< @ 群里所有人并且单独 @ 我
|
||||
V2TIM_AT_ALL_AT_ME = 3,
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// (二)结构体定义
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/// 群成员基本资料
|
||||
struct TIM_API V2TIMGroupMemberInfo {
|
||||
/// 用户 ID
|
||||
V2TIMString userID;
|
||||
/// 用户昵称
|
||||
V2TIMString nickName;
|
||||
/// 用户好友备注
|
||||
V2TIMString friendRemark;
|
||||
/// 群成员名片
|
||||
V2TIMString nameCard;
|
||||
/// 用户头像
|
||||
V2TIMString faceURL;
|
||||
|
||||
V2TIMGroupMemberInfo();
|
||||
V2TIMGroupMemberInfo(const V2TIMGroupMemberInfo& groupMemberInfo);
|
||||
~V2TIMGroupMemberInfo();
|
||||
};
|
||||
|
||||
DEFINE_VECTOR(V2TIMGroupMemberInfo)
|
||||
typedef TXV2TIMGroupMemberInfoVector V2TIMGroupMemberInfoVector;
|
||||
|
||||
/// 群成员详细资料
|
||||
struct TIM_API V2TIMGroupMemberFullInfo : public V2TIMGroupMemberInfo {
|
||||
/// 群成员自定义字段
|
||||
/// 首先要在 [控制台](https://console.cloud.tencent.com/im) (功能配置 -> 群成员自定义字段)
|
||||
/// 配置用户自定义字段,然后再调用该接口进行设置。
|
||||
V2TIMCustomInfo customInfo;
|
||||
/// 群成员角色,修改群成员角色请调用 V2TIMManagerGroup.h -> SetGroupMemberRole 接口
|
||||
uint32_t role;
|
||||
/// 群成员禁言结束时间戳,禁言用户请调用 V2TIMManagerGroup.h -> MuteGroupMember 接口
|
||||
uint32_t muteUntil;
|
||||
/// 群成员入群时间,自动生成,不可修改
|
||||
int64_t joinTime;
|
||||
// 群成员资料修改标记位
|
||||
// 枚举 V2TIMGroupMemberInfoModifyFlag 列出哪些字段支持修改,如果您修改群成员资料,请设置这个字段值
|
||||
// 支持同时修改多个字段,多个枚举值按位或 | 组合,例如,同时修改群成员名片和群成员角色
|
||||
// info.nameCard = "new name card";
|
||||
// info.role = V2TIM_GROUP_MEMBER_ROLE_ADMIN;
|
||||
// info.modifyFlag = V2TIM_GROUP_MEMBER_INFO_MODIFY_FLAG_NAME_CARD | V2TIM_GROUP_MEMBER_INFO_MODIFY_FLAG_MEMBER_ROLE;
|
||||
uint32_t modifyFlag;
|
||||
|
||||
V2TIMGroupMemberFullInfo();
|
||||
V2TIMGroupMemberFullInfo(const V2TIMGroupMemberFullInfo& groupMemberFullInfo);
|
||||
~V2TIMGroupMemberFullInfo();
|
||||
};
|
||||
|
||||
DEFINE_VECTOR(V2TIMGroupMemberFullInfo)
|
||||
typedef TXV2TIMGroupMemberFullInfoVector V2TIMGroupMemberFullInfoVector;
|
||||
|
||||
/// 获取群成员信息的结果
|
||||
struct TIM_API V2TIMGroupMemberInfoResult {
|
||||
///获取分页拉取的 seq。如果为 0 表示拉取结束
|
||||
uint64_t nextSequence;
|
||||
// 群成员信息列表
|
||||
V2TIMGroupMemberFullInfoVector memberInfoList;
|
||||
|
||||
V2TIMGroupMemberInfoResult();
|
||||
V2TIMGroupMemberInfoResult(const V2TIMGroupMemberInfoResult& groupMemberInfoResult);
|
||||
~V2TIMGroupMemberInfoResult();
|
||||
};
|
||||
|
||||
/// 群 tips,群变更信息
|
||||
struct TIM_API V2TIMGroupChangeInfo {
|
||||
/// 变更类型
|
||||
V2TIMGroupInfoChangeType type;
|
||||
/// 根据变更类型表示不同的值,例如 type = V2TIM_GROUP_INFO_CHANGE_TYPE_NAME,value 表示群新的
|
||||
/// groupName
|
||||
V2TIMString value;
|
||||
/// 变更自定义字段的 key 值(type = V2TIM_GROUP_INFO_CHANGE_TYPE_CUSTOM 生效)
|
||||
/// 因为历史遗留原因,如果只修改了群自定义字段,当前消息不会存漫游和 DB
|
||||
V2TIMString key;
|
||||
|
||||
/// 根据变更类型表示不同的值
|
||||
/// 当前只有 type = V2TIM_GROUP_INFO_CHANGE_TYPE_SHUT_UP_ALL 时有效
|
||||
bool boolValue;
|
||||
|
||||
/// 根据变更类型表示不同的值
|
||||
/// @note 仅针对以下类型有效:
|
||||
/// - 从 6.5 版本开始,当 type 为 V2TIM_GROUP_INFO_CHANGE_TYPE_RECEIVE_MESSAGE_OPT 时,该字段标识了群消息接收选项发生了变化,其取值详见 @V2TIMReceiveMessageOpt;
|
||||
/// - 从 6.5 版本开始,当 type 为 V2TIM_GROUP_INFO_CHANGE_TYPE_GROUP_ADD_OPT 时,该字段标识了申请加群审批选项发生了变化,其取值详见 @V2TIMGroupAddOpt;
|
||||
/// - 从 7.1 版本开始,当 type 为 V2TIM_GROUP_INFO_CHANGE_TYPE_GROUP_APPROVE_OPT 时,该字段标识了邀请进群审批选项发生了变化,取值类型详见 @V2TIMGroupAddOpt。
|
||||
uint32_t intValue;
|
||||
|
||||
V2TIMGroupChangeInfo();
|
||||
V2TIMGroupChangeInfo(const V2TIMGroupChangeInfo& groupChangeInfo);
|
||||
~V2TIMGroupChangeInfo();
|
||||
};
|
||||
|
||||
DEFINE_VECTOR(V2TIMGroupChangeInfo)
|
||||
typedef TXV2TIMGroupChangeInfoVector V2TIMGroupChangeInfoVector;
|
||||
|
||||
/// 群tips,成员变更信息
|
||||
struct TIM_API V2TIMGroupMemberChangeInfo {
|
||||
/// 变更用户
|
||||
V2TIMString userID;
|
||||
/// 禁言时间(秒,表示还剩多少秒可以发言)
|
||||
uint32_t muteTime;
|
||||
|
||||
V2TIMGroupMemberChangeInfo();
|
||||
V2TIMGroupMemberChangeInfo(const V2TIMGroupMemberChangeInfo& groupMemberChangeInfo);
|
||||
~V2TIMGroupMemberChangeInfo();
|
||||
};
|
||||
|
||||
DEFINE_VECTOR(V2TIMGroupMemberChangeInfo)
|
||||
typedef TXV2TIMGroupMemberChangeInfoVector V2TIMGroupMemberChangeInfoVector;
|
||||
|
||||
/// 群 @ 信息
|
||||
struct TIM_API V2TIMGroupAtInfo {
|
||||
/// 消息序列号,即带有 “@我” 或者 “@所有人” 标记的消息的序列号
|
||||
uint64_t seq;
|
||||
/// @ 提醒类型,分成 “@我” 、“@所有人” 以及 “@我并@所有人” 三类
|
||||
V2TIMGroupAtType atType;
|
||||
|
||||
V2TIMGroupAtInfo();
|
||||
V2TIMGroupAtInfo(const V2TIMGroupAtInfo& groupAtInfo);
|
||||
V2TIMGroupAtInfo& operator=(const V2TIMGroupAtInfo& conversation);
|
||||
~V2TIMGroupAtInfo();
|
||||
};
|
||||
|
||||
DEFINE_VECTOR(V2TIMGroupAtInfo)
|
||||
typedef TXV2TIMGroupAtInfoVector V2TIMGroupAtInfoVector;
|
||||
|
||||
/// 群资料
|
||||
struct TIM_API V2TIMGroupInfo {
|
||||
/// 群组 ID
|
||||
/// 自定义群组 ID 必须为可打印 ASCII 字符(0x20-0x7e),最长48个字节,且前缀不能为
|
||||
/// @TGS#(避免与默认分配的群组 ID 混淆)
|
||||
V2TIMString groupID;
|
||||
/// 群类型
|
||||
V2TIMString groupType;
|
||||
/// 社群是否支持创建话题,只在群类型为 Community 时有效
|
||||
bool isSupportTopic;
|
||||
/// 群名称
|
||||
/// 群名称最长30字节
|
||||
V2TIMString groupName;
|
||||
/// 群公告
|
||||
/// 群公告最长300字节
|
||||
V2TIMString notification;
|
||||
/// 群简介
|
||||
/// 群简介最长240字节
|
||||
V2TIMString introduction;
|
||||
/// 群头像
|
||||
/// 群头像 URL 最长100字节
|
||||
V2TIMString faceURL;
|
||||
/// 是否全员禁言
|
||||
bool allMuted;
|
||||
/// 设置群自定义字段需要两个步骤:
|
||||
/// 1.在 [控制台](https://console.cloud.tencent.com/im) (功能配置 -> 群自定义字段)
|
||||
/// 配置群自定义字段的 key 值,Key 为 V2TIMString 类型,长度不超过 16 字节。 2.调用 SetGroupInfo
|
||||
/// 接口设置该字段,value 为 V2TIMSBuffer 数据,长度不超过 512 字节。
|
||||
V2TIMCustomInfo customInfo;
|
||||
/// 群创建人/管理员
|
||||
V2TIMString owner;
|
||||
/// 群创建时间
|
||||
uint32_t createTime;
|
||||
/// 申请进群是否需要管理员审批:工作群(Work)默认值为 V2TIM_GROUP_ADD_FORBID,即默认不允许申请入群,您可以修改该字段打开申请入群方式。
|
||||
V2TIMGroupAddOpt groupAddOpt;
|
||||
/// 邀请进群是否需要管理员审批 (从 7.1 版本开始支持)
|
||||
/// - 除工作群(Work)之外的其他群类型默认值都为 V2TIM_GROUP_ADD_FORBID,即默认不允许邀请入群,您可以修改该字段打开邀请入群方式。
|
||||
/// - 直播群、社群和话题默认不允许邀请入群,也不支持修改。
|
||||
V2TIMGroupAddOpt groupApproveOpt;
|
||||
/// 群最近一次群资料修改时间
|
||||
uint32_t lastInfoTime;
|
||||
/// 群最近一次发消息时间
|
||||
uint32_t lastMessageTime;
|
||||
/// 已加入的群成员数量
|
||||
uint32_t memberCount;
|
||||
/// 在线的群成员数量
|
||||
uint32_t onlineCount;
|
||||
/// 最多允许加入的群成员数量
|
||||
/// 各类群成员人数限制详见:
|
||||
/// https://cloud.tencent.com/document/product/269/1502#.E7.BE.A4.E7.BB.84.E9.99.90.E5.88.B6.E5.B7.AE.E5.BC.82
|
||||
uint32_t memberMaxCount;
|
||||
/// 当前用户在此群组中的角色,切换角色请调用 setGroupMemberRole 接口
|
||||
uint32_t role;
|
||||
/// 当前用户在此群组中的消息接收选项,修改群消息接收选项请调用 SetGroupReceiveMessageOpt 接口
|
||||
V2TIMReceiveMessageOpt recvOpt;
|
||||
/// 当前用户在此群中的加入时间,不支持设置,系统自动生成
|
||||
uint32_t joinTime;
|
||||
/// 群资料修改标记位
|
||||
/// 枚举 V2TIMGroupInfoModifyFlag 列出哪些字段支持修改,如果您修改群资料,请设置这个字段值
|
||||
/// 如果您同时修改多个字段,多个枚举值按位或 | 组合,例如,同时修改群名称和头像
|
||||
/// info.groupName = "new group name";
|
||||
/// info.faceURL = "new face url";
|
||||
/// info.modifyFlag = V2TIM_GROUP_INFO_MODIFY_FLAG_GROUP_NAME |
|
||||
/// V2TIM_GROUP_INFO_MODIFY_FLAG_FACE_URL;
|
||||
uint32_t modifyFlag;
|
||||
|
||||
V2TIMGroupInfo();
|
||||
V2TIMGroupInfo(const V2TIMGroupInfo& groupInfo);
|
||||
~V2TIMGroupInfo();
|
||||
};
|
||||
|
||||
DEFINE_VECTOR(V2TIMGroupInfo)
|
||||
typedef TXV2TIMGroupInfoVector V2TIMGroupInfoVector;
|
||||
|
||||
/// 获取群组资料结果
|
||||
struct TIM_API V2TIMGroupInfoResult {
|
||||
/// 结果 0:成功;非0:失败
|
||||
int resultCode;
|
||||
/// 如果获取失败,会返回错误信息
|
||||
V2TIMString resultMsg;
|
||||
/// 如果获取成功,会返回对应的 info
|
||||
V2TIMGroupInfo info;
|
||||
|
||||
V2TIMGroupInfoResult();
|
||||
V2TIMGroupInfoResult(const V2TIMGroupInfoResult& groupInfoResult);
|
||||
~V2TIMGroupInfoResult();
|
||||
};
|
||||
|
||||
DEFINE_VECTOR(V2TIMGroupInfoResult)
|
||||
typedef TXV2TIMGroupInfoResultVector V2TIMGroupInfoResultVector;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 话题基本资料(可以通过 getTopics 获取,不支持由客户自行创建)
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
struct V2TIMMessage;
|
||||
|
||||
struct TIM_API V2TIMTopicInfo {
|
||||
/// 话题 ID
|
||||
V2TIMString topicID;
|
||||
/// 话题名称
|
||||
V2TIMString topicName;
|
||||
/// 话题头像
|
||||
V2TIMString topicFaceURL;
|
||||
/// 话题介绍
|
||||
V2TIMString introduction;
|
||||
/// 话题公告
|
||||
V2TIMString notification;
|
||||
/// 话题全员禁言
|
||||
bool isAllMuted;
|
||||
/// 当前用户在话题中的禁言时间
|
||||
uint32_t selfMuteTime;
|
||||
/// 话题自定义字段
|
||||
V2TIMString customString;
|
||||
/// 话题消息接收选项,修改话题消息接收选项请调用 setGroupReceiveMessageOpt 接口
|
||||
V2TIMReceiveMessageOpt recvOpt;
|
||||
/// 话题草稿
|
||||
V2TIMString draftText;
|
||||
/// 话题消息未读数量
|
||||
uint64_t unreadCount;
|
||||
/// 话题 lastMessage
|
||||
V2TIMMessage *lastMessage;
|
||||
/// 话题 at 信息列表
|
||||
V2TIMGroupAtInfoVector groupAtInfoList;
|
||||
/// 话题资料修改标记位
|
||||
/// 枚举 V2TIMGroupInfoModifyFlag 列出哪些字段支持修改,如果您修改群资料,请设置这个字段值
|
||||
/// 如果您同时修改多个字段,多个枚举值按位或 | 组合,例如,同时修改群名称和头像
|
||||
/// info.topicName = "new group name";
|
||||
/// info.topicFaceURL = "new face url";
|
||||
/// info.modifyFlag = V2TIM_GROUP_INFO_MODIFY_FLAG_GROUP_NAME |
|
||||
/// V2TIM_GROUP_INFO_MODIFY_FLAG_FACE_URL;
|
||||
uint32_t modifyFlag;
|
||||
|
||||
V2TIMTopicInfo();
|
||||
V2TIMTopicInfo(const V2TIMTopicInfo& topicInfo);
|
||||
V2TIMTopicInfo& operator =(const V2TIMTopicInfo& topicInfo);
|
||||
~V2TIMTopicInfo();
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// V2TIMTopicOperationResult
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
struct TIM_API V2TIMTopicOperationResult {
|
||||
/// 结果 0:成功;非0:失败
|
||||
int32_t errorCode;
|
||||
/// 如果删除失败,会返回错误信息
|
||||
V2TIMString errorMsg;
|
||||
/// 如果删除成功,会返回对应的 topicID
|
||||
V2TIMString topicID;
|
||||
|
||||
V2TIMTopicOperationResult();
|
||||
V2TIMTopicOperationResult(const V2TIMTopicOperationResult& result);
|
||||
~V2TIMTopicOperationResult();
|
||||
};
|
||||
|
||||
DEFINE_VECTOR(V2TIMTopicOperationResult)
|
||||
typedef TXV2TIMTopicOperationResultVector V2TIMTopicOperationResultVector;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// V2TIMTopicInfoResult
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
struct TIM_API V2TIMTopicInfoResult {
|
||||
/// 结果 0:成功;非0:失败
|
||||
int32_t errorCode;
|
||||
/// 如果获取失败,会返回错误信息
|
||||
V2TIMString errorMsg;
|
||||
/// 如果获取成功,会返回对应的 info
|
||||
V2TIMTopicInfo topicInfo;
|
||||
|
||||
V2TIMTopicInfoResult();
|
||||
V2TIMTopicInfoResult(const V2TIMTopicInfoResult& result);
|
||||
~V2TIMTopicInfoResult();
|
||||
};
|
||||
|
||||
DEFINE_VECTOR(V2TIMTopicInfoResult)
|
||||
typedef TXV2TIMTopicInfoResultVector V2TIMTopicInfoResultVector;
|
||||
|
||||
/// 群申请信息
|
||||
struct TIM_API V2TIMGroupApplication : V2TIMBaseObject {
|
||||
/// 群组 ID
|
||||
V2TIMString groupID;
|
||||
/// 请求者 userID
|
||||
V2TIMString fromUser;
|
||||
/// 请求者昵称
|
||||
V2TIMString fromUserNickName;
|
||||
/// 请求者头像
|
||||
V2TIMString fromUserFaceUrl;
|
||||
/// 判决者id,有人请求加群:0,邀请其他人加群:被邀请人用户 ID
|
||||
V2TIMString toUser;
|
||||
/// 申请时间
|
||||
uint64_t addTime;
|
||||
/// 申请或邀请附加信息
|
||||
V2TIMString requestMsg;
|
||||
/// 审批信息:同意或拒绝信息
|
||||
V2TIMString handledMsg;
|
||||
/// 请求类型
|
||||
V2TIMGroupApplicationType applicationType;
|
||||
/// 处理标志
|
||||
V2TIMGroupApplicationHandleStatus handleStatus;
|
||||
/// 处理结果
|
||||
V2TIMGroupApplicationHandleResult handleResult;
|
||||
|
||||
V2TIMGroupApplication();
|
||||
V2TIMGroupApplication(const V2TIMGroupApplication& groupApplication);
|
||||
V2TIMGroupApplication& operator=(const V2TIMGroupApplication& groupApplication);
|
||||
~V2TIMGroupApplication() override;
|
||||
};
|
||||
|
||||
DEFINE_VECTOR(V2TIMGroupApplication)
|
||||
typedef TXV2TIMGroupApplicationVector V2TIMGroupApplicationVector;
|
||||
|
||||
/// 邀请其他人入群的操作结果
|
||||
struct TIM_API V2TIMGroupMemberOperationResult {
|
||||
/// 被操作成员
|
||||
V2TIMString userID;
|
||||
/// 返回状态
|
||||
V2TIMGroupMemberResult result;
|
||||
|
||||
V2TIMGroupMemberOperationResult();
|
||||
V2TIMGroupMemberOperationResult(
|
||||
const V2TIMGroupMemberOperationResult& groupMemberOperationResult);
|
||||
~V2TIMGroupMemberOperationResult();
|
||||
};
|
||||
|
||||
DEFINE_VECTOR(V2TIMGroupMemberOperationResult)
|
||||
typedef TXV2TIMGroupMemberOperationResultVector V2TIMGroupMemberOperationResultVector;
|
||||
|
||||
/// 创建群时指定群成员
|
||||
struct TIM_API V2TIMCreateGroupMemberInfo {
|
||||
// 被操作成员
|
||||
V2TIMString userID;
|
||||
/// 群成员类型,需要注意一下事项:
|
||||
/// 1. role 不设置或则设置为 V2TIM_GROUP_MEMBER_UNDEFINED,进群后默认为群成员。
|
||||
/// 2. 工作群(Work)不支持设置 role 为管理员。
|
||||
/// 3. 所有的群都不支持设置 role 为群主。
|
||||
uint32_t role;
|
||||
|
||||
V2TIMCreateGroupMemberInfo();
|
||||
V2TIMCreateGroupMemberInfo(const V2TIMCreateGroupMemberInfo& createGroupMemberInfo);
|
||||
~V2TIMCreateGroupMemberInfo();
|
||||
};
|
||||
|
||||
DEFINE_VECTOR(V2TIMCreateGroupMemberInfo)
|
||||
typedef TXV2TIMCreateGroupMemberInfoVector V2TIMCreateGroupMemberInfoVector;
|
||||
|
||||
/// 加群申请列表
|
||||
struct TIM_API V2TIMGroupApplicationResult {
|
||||
/// 未读的申请数量
|
||||
uint64_t unreadCount;
|
||||
/// 加群申请的列表
|
||||
V2TIMGroupApplicationVector applicationList;
|
||||
|
||||
V2TIMGroupApplicationResult();
|
||||
V2TIMGroupApplicationResult(const V2TIMGroupApplicationResult& groupApplicationResult);
|
||||
~V2TIMGroupApplicationResult();
|
||||
};
|
||||
|
||||
/// 群搜索的参数
|
||||
struct TIM_API V2TIMGroupSearchParam {
|
||||
/// 搜索关键字列表,最多支持5个。
|
||||
V2TIMStringVector keywordList;
|
||||
/// 设置是否搜索群 ID。
|
||||
bool isSearchGroupID;
|
||||
/// 设置是否搜索群名称
|
||||
bool isSearchGroupName;
|
||||
|
||||
V2TIMGroupSearchParam();
|
||||
V2TIMGroupSearchParam(const V2TIMGroupSearchParam& groupSearchParam);
|
||||
~V2TIMGroupSearchParam();
|
||||
};
|
||||
|
||||
/// 搜索群成员的参数
|
||||
struct TIM_API V2TIMGroupMemberSearchParam {
|
||||
/// 指定群 ID 列表,若为空的 V2TIMStringVector 则搜索全部群中的群成员
|
||||
V2TIMStringVector groupIDList;
|
||||
/// 搜索关键字列表,最多支持5个
|
||||
V2TIMStringVector keywordList;
|
||||
/// 设置是否搜索群成员 userID
|
||||
bool isSearchMemberUserID;
|
||||
/// 设置是否搜索群成员昵称
|
||||
bool isSearchMemberNickName;
|
||||
/// 设置是否搜索群成员备注
|
||||
bool isSearchMemberRemark;
|
||||
/// 设置是否搜索群成员名片
|
||||
bool isSearchMemberNameCard;
|
||||
|
||||
V2TIMGroupMemberSearchParam();
|
||||
V2TIMGroupMemberSearchParam(const V2TIMGroupMemberSearchParam& groupMemberSearchParam);
|
||||
~V2TIMGroupMemberSearchParam();
|
||||
};
|
||||
|
||||
/// SearchGroupMembers 搜索结果
|
||||
DEFINE_MAP(V2TIMString, V2TIMGroupMemberFullInfoVector)
|
||||
typedef TXV2TIMStringToV2TIMGroupMemberFullInfoVectorMap V2TIMGroupSearchGroupMembersMap;
|
||||
|
||||
#endif /* __V2TIM_GROUP_H__ */
|
||||
392
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMGroupManager.h
generated
Executable file
392
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMGroupManager.h
generated
Executable file
@@ -0,0 +1,392 @@
|
||||
// Copyright (c) 2021 Tencent. All rights reserved.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 腾讯云通信服务 IMSDK
|
||||
//
|
||||
// 群组高级接口,里面包含了群组的高级功能,比如群成员邀请、非群成员申请进群等操作接口。
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __V2TIM_GROUP_MANAGER_H__
|
||||
#define __V2TIM_GROUP_MANAGER_H__
|
||||
|
||||
#include "V2TIMCallback.h"
|
||||
#include "V2TIMDefine.h"
|
||||
#include "V2TIMGroup.h"
|
||||
#include "V2TIMListener.h"
|
||||
|
||||
/**
|
||||
* ## 群组高级接口,包含了群组的高级功能,例如群成员邀请、非群成员申请进群等操作接口。
|
||||
*/
|
||||
class TIM_API V2TIMGroupManager {
|
||||
public:
|
||||
virtual ~V2TIMGroupManager() {}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 群相关的高级接口
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 1.1 创建自定义群组(高级版本:可以指定初始的群成员)
|
||||
*
|
||||
* @param info 自定义群组信息,可以设置 groupID | groupType | groupName | notification |
|
||||
* introduction | faceURL 字段
|
||||
* @param memberList 指定初始的群成员(直播群 AVChatRoom 不支持指定初始群成员,memberList
|
||||
* 请传一个大小为 0 的 V2TIMCreateGroupMemberInfoVector)
|
||||
*
|
||||
* @note
|
||||
* - 邀请的群成员个数不能超过 20(7.1 及其以上版本开始限制)
|
||||
* - 其他限制请参考 @ref V2TIMManager.h -> CreateGroup 注释
|
||||
*/
|
||||
virtual void CreateGroup(const V2TIMGroupInfo& info,
|
||||
const V2TIMCreateGroupMemberInfoVector& memberList,
|
||||
V2TIMValueCallback<V2TIMString>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 1.2 获取当前用户已经加入的群列表
|
||||
*
|
||||
* @note
|
||||
* - 直播群(AVChatRoom) 不支持该 API。
|
||||
* - 该接口有频限检测,SDK 限制调用频率为1 秒 10 次,超过限制后会报
|
||||
* ERR_SDK_COMM_API_CALL_FREQUENCY_LIMIT (7008)错误
|
||||
*/
|
||||
virtual void GetJoinedGroupList(V2TIMValueCallback<V2TIMGroupInfoVector>* callback) = 0;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// 群资料和高级设置项
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 2.1 拉取群资料
|
||||
*
|
||||
* @param groupIDList 群组 ID 列表
|
||||
*/
|
||||
virtual void GetGroupsInfo(const V2TIMStringVector& groupIDList,
|
||||
V2TIMValueCallback<V2TIMGroupInfoResultVector>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 2.2 搜索群资料(5.4.666 及以上版本支持)
|
||||
*
|
||||
* @param searchParam 搜索参数
|
||||
* @note 该功能为 IM 旗舰版功能,[购买旗舰版套餐包](https://buy.cloud.tencent.com/avc?from=17474)后可使用,详见[价格说明](https://cloud.tencent.com/document/product/269/11673?from=17176#.E5.9F.BA.E7.A1.80.E6.9C.8D.E5.8A.A1.E8.AF.A6.E6.83.85)
|
||||
*/
|
||||
virtual void SearchGroups(const V2TIMGroupSearchParam& searchParam,
|
||||
V2TIMValueCallback<V2TIMGroupInfoVector>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 2.3 修改群资料
|
||||
*/
|
||||
virtual void SetGroupInfo(const V2TIMGroupInfo& info, V2TIMCallback* callback) = 0;
|
||||
|
||||
/**
|
||||
* 2.4 初始化群属性,会清空原有的群属性列表
|
||||
*
|
||||
* @note
|
||||
* attributes 的使用限制如下:
|
||||
* - 6.7 及其以前版本,只支持 AVChatRoom 直播群;
|
||||
* - 从 6.8 版本开始,同时支持 AVChatRoom、Public、Meeting、Work 四种群类型;
|
||||
* - 从 7.0 版本开始,除了话题外,群属性支持所有的群类型;
|
||||
* - key 最多支持 16 个,长度限制为 32 字节;
|
||||
* - value 长度限制为 4k;
|
||||
* - 总的 attributes(包括 key 和 value)限制为 16k;
|
||||
* - initGroupAttributes、setGroupAttributes、deleteGroupAttributes 接口合并计算, SDK 限制为 5 秒 10 次,超过后回调 8511 错误码;后台限制 1 秒 5 次,超过后返回 10049 错误码;
|
||||
* - getGroupAttributes 接口 SDK 限制 5 秒 20 次;
|
||||
* - 从 5.6 版本开始,当每次APP启动后初次修改群属性时,请您先调用 getGroupAttributes 拉取到最新的群属性之后,再发起修改操作;
|
||||
* - 从 5.6 版本开始,当多个用户同时修改同一个群属性时,只有第一个用户可以执行成功,其它用户会收到 10056 错误码;收到这个错误码之后,请您调用 getGroupAttributes 把本地保存的群属性更新到最新之后,再发起修改操作。
|
||||
*/
|
||||
virtual void InitGroupAttributes(const V2TIMString& groupID,
|
||||
const V2TIMGroupAttributeMap& attributes,
|
||||
V2TIMCallback* callback) = 0;
|
||||
|
||||
/**
|
||||
* 2.5 设置群属性。已有该群属性则更新其 value 值,没有该群属性则添加该属性。
|
||||
* @note
|
||||
* - 6.7 及其以前版本,只支持 AVChatRoom 直播群;
|
||||
* - 从 6.8 版本开始,同时支持 AVChatRoom、Public、Meeting、Work 四种群类型;
|
||||
* - 从 7.0 版本开始,除了话题外,群属性支持所有的群类型。
|
||||
*/
|
||||
virtual void SetGroupAttributes(const V2TIMString& groupID,
|
||||
const V2TIMGroupAttributeMap& attributes,
|
||||
V2TIMCallback* callback) = 0;
|
||||
|
||||
/**
|
||||
* 2.6 删除指定群属性,keys 传大小为 0 的 V2TIMStringVector 则清空所有群属性。
|
||||
* @note
|
||||
* - 6.7 及其以前版本,只支持 AVChatRoom 直播群;
|
||||
* - 从 6.8 版本开始,同时支持 AVChatRoom、Public、Meeting、Work 四种群类型;
|
||||
* - 从 7.0 版本开始,除了话题外,群属性支持所有的群类型。
|
||||
*/
|
||||
virtual void DeleteGroupAttributes(const V2TIMString& groupID, const V2TIMStringVector& keys,
|
||||
V2TIMCallback* callback) = 0;
|
||||
|
||||
/**
|
||||
* 2.7 获取指定群属性,keys 传 keys 传大小为 0 的 V2TIMStringVector 则获取所有群属性。
|
||||
* @note
|
||||
* - 6.7 及其以前版本,只支持 AVChatRoom 直播群;
|
||||
* - 从 6.8 版本开始,同时支持 AVChatRoom、Public、Meeting、Work 四种群类型;
|
||||
* - 从 7.0 版本开始,除了话题外,群属性支持所有的群类型。
|
||||
*/
|
||||
virtual void GetGroupAttributes(const V2TIMString& groupID, const V2TIMStringVector& keys,
|
||||
V2TIMValueCallback<V2TIMGroupAttributeMap>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 2.8 获取指定群在线人数
|
||||
*
|
||||
* @note 请注意:
|
||||
* - 目前只支持:直播群(AVChatRoom)。
|
||||
*/
|
||||
virtual void GetGroupOnlineMemberCount(const V2TIMString& groupID,
|
||||
V2TIMValueCallback<uint32_t>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 2.9 设置群计数器(7.0 及其以上版本支持)
|
||||
*
|
||||
* @note
|
||||
* - 该计数器的 key 如果存在,则直接更新计数器的 value 值;如果不存在,则添加该计数器的 key-value;
|
||||
* - 当群计数器设置成功后,在 succ 回调中会返回最终成功设置的群计数器信息;
|
||||
* - 除了社群和话题,群计数器支持所有的群组类型。
|
||||
*/
|
||||
virtual void SetGroupCounters(const V2TIMString& groupID, const V2TIMStringToInt64Map& counters,
|
||||
V2TIMValueCallback<V2TIMStringToInt64Map>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 2.10 获取群计数器(7.0 及其以上版本支持)
|
||||
*
|
||||
* @note
|
||||
* - 如果 keys 为空,则表示获取群内的所有计数器;
|
||||
* - 除了社群和话题,群计数器支持所有的群组类型。
|
||||
*/
|
||||
virtual void GetGroupCounters(const V2TIMString& groupID, const V2TIMStringVector& keys,
|
||||
V2TIMValueCallback<V2TIMStringToInt64Map>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 2.11 递增群计数器(7.0 及其以上版本支持)
|
||||
*
|
||||
* @param groupID 群 ID
|
||||
* @param key 群计数器的 key
|
||||
* @param value 群计数器的递增的变化量,计数器 key 对应的 value 变更方式为: new_value = old_value + value
|
||||
* @param callback 如果成功,会返回当前计数器做完递增操作后的 value
|
||||
*
|
||||
* @note
|
||||
* - 该计数器的 key 如果存在,则直接在当前值的基础上根据传入的 value 作递增操作;反之,添加 key,并在默认值为 0 的基础上根据传入的 value 作递增操作;
|
||||
* - 除了社群和话题,群计数器支持所有的群组类型。
|
||||
*/
|
||||
virtual void IncreaseGroupCounter(const V2TIMString& groupID,
|
||||
const V2TIMString& key, int64_t value,
|
||||
V2TIMValueCallback<V2TIMStringToInt64Map>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 2.12 递减群计数器(7.0 及其以上版本支持)
|
||||
*
|
||||
* @param groupID 群 ID
|
||||
* @param key 群计数器的 key
|
||||
* @param value 群计数器的递减的变化量,计数器 key 对应的 value 变更方式为: new_value = old_value - value
|
||||
* @param callback 如果成功,会返回当前计数器做完递减操作后的 value
|
||||
*
|
||||
* @note
|
||||
* - 该计数器的 key 如果存在,则直接在当前值的基础上根据传入的 value 作递减操作;反之,添加 key,并在默认值为 0 的基础上根据传入的 value 作递减操作
|
||||
* - 除了社群和话题,群计数器支持所有的群组类型。
|
||||
*/
|
||||
virtual void DecreaseGroupCounter(const V2TIMString& groupID,
|
||||
const V2TIMString& key, int64_t value,
|
||||
V2TIMValueCallback<V2TIMStringToInt64Map>* callback) = 0;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// 群成员管理
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 3.1 获取群成员列表
|
||||
*
|
||||
* @param filter 指定群成员类型
|
||||
* @param nextSeq 分页拉取标志,第一次拉取填0,回调成功如果 nextSeq
|
||||
* 不为零,需要分页,传入再次拉取,直至为0。
|
||||
*
|
||||
* @note
|
||||
* - 普通群(工作群、会议群、公开群、社群)的限制:
|
||||
* 1. filter 只能设置为 V2TIMGroupMemberFilter 定义的数值,SDK 会返回指定角色的成员。
|
||||
*
|
||||
* - 直播群(AVChatRoom)的限制:
|
||||
* 1. 如果设置 filter 为 V2TIMGroupMemberFilter 定义的数值,SDK 返回全部成员。
|
||||
* 返回的人数规则为:旗舰版支持拉取最近入群群成员最多 1000 人,新进来的成员排在前面(6.3 及以上版本支持,
|
||||
* 需要先在 [控制台](https://console.cloud.tencent.com/im) 开启开关;
|
||||
* 非旗舰版支持拉取最近入群群成员最多 31 人,新进来的 成员排在前面。
|
||||
* 2. 如果设置 filter 为群成员自定义标记,旗舰版支持拉取指定标记的成员列表。
|
||||
* 标记群成员的设置请参考 MarkGroupMemberList API。
|
||||
* 3. 程序重启后,请重新加入群组,否则拉取群成员会报 10007 错误码。
|
||||
* 4. 群成员资料信息仅支持 userID | nickName | faceURL | role 字段。
|
||||
*/
|
||||
virtual void GetGroupMemberList(const V2TIMString& groupID, uint32_t filter,
|
||||
uint64_t nextSeq,
|
||||
V2TIMValueCallback<V2TIMGroupMemberInfoResult>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 3.2 获取指定的群成员资料
|
||||
*/
|
||||
virtual void GetGroupMembersInfo(
|
||||
const V2TIMString& groupID, V2TIMStringVector memberList,
|
||||
V2TIMValueCallback<V2TIMGroupMemberFullInfoVector>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 3.3 搜索群成员(5.4.666 及以上版本支持)
|
||||
*
|
||||
* @param param 搜索参数
|
||||
* @note 该功能为 IM 旗舰版功能,[购买旗舰版套餐包](https://buy.cloud.tencent.com/avc?from=17474)后可使用,详见[价格说明](https://cloud.tencent.com/document/product/269/11673?from=17176#.E5.9F.BA.E7.A1.80.E6.9C.8D.E5.8A.A1.E8.AF.A6.E6.83.85)
|
||||
*/
|
||||
virtual void SearchGroupMembers(
|
||||
const V2TIMGroupMemberSearchParam& param,
|
||||
V2TIMValueCallback<V2TIMGroupSearchGroupMembersMap>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 3.4 修改指定的群成员资料
|
||||
*/
|
||||
virtual void SetGroupMemberInfo(const V2TIMString& groupID,
|
||||
const V2TIMGroupMemberFullInfo& info,
|
||||
V2TIMCallback* callback) = 0;
|
||||
|
||||
/**
|
||||
* 3.5 禁言(只有管理员或群主能够调用)
|
||||
*
|
||||
* @param seconds 禁言时间长度,单位秒,表示调用该接口成功后多少秒内不允许被禁言用户再发言。
|
||||
*/
|
||||
virtual void MuteGroupMember(const V2TIMString& groupID, const V2TIMString& userID,
|
||||
uint32_t seconds,
|
||||
V2TIMCallback* callback) = 0;
|
||||
|
||||
/**
|
||||
* 3.6 邀请他人入群
|
||||
*
|
||||
* @note 请注意不同类型的群有如下限制:
|
||||
* - 工作群(Work):群里的任何人都可以邀请其他人进群。
|
||||
* - 会议群(Meeting)和公开群(Public):只有通过rest api 使用 App
|
||||
* 管理员身份才可以邀请其他人进群。
|
||||
* - 直播群(AVChatRoom):不支持此功能。
|
||||
* - 单次邀请的群成员个数不能超过 20(7.1 及其以上版本开始限制)。
|
||||
*/
|
||||
virtual void InviteUserToGroup(
|
||||
const V2TIMString& groupID, const V2TIMStringVector& userList,
|
||||
V2TIMValueCallback<V2TIMGroupMemberOperationResultVector>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 3.7 踢人(直播群踢人从 6.6 版本开始支持,需要您购买旗舰版套餐)
|
||||
*
|
||||
* @note 请注意不同类型的群有如下限制:
|
||||
* - 工作群(Work):只有群主或 APP 管理员可以踢人。
|
||||
* - 公开群(Public)、会议群(Meeting):群主、管理员和 APP 管理员可以踢人
|
||||
* - 直播群(AVChatRoom):6.6 之前版本只支持禁言(MuteGroupMember),不支持踢人(KickGroupMember)。6.6 及以上版本支持禁言和踢人。
|
||||
*/
|
||||
virtual void KickGroupMember(
|
||||
const V2TIMString& groupID, const V2TIMStringVector& memberList, const V2TIMString& reason,
|
||||
V2TIMValueCallback<V2TIMGroupMemberOperationResultVector>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 3.8 切换群成员的角色。
|
||||
*
|
||||
* @note 请注意不同类型的群有如下限制:
|
||||
* -
|
||||
* 公开群(Public)和会议群(Meeting):只有群主才能对群成员进行普通成员和管理员之间的角色切换。
|
||||
* - 其他群不支持设置群成员角色。
|
||||
* - 转让群组请调用 @ref TransferGroupOwner 接口。
|
||||
* - 会议群(Meeting)切换群成员角色之后,不会有 OnGrantAdministrator 和 OnRevokeAdministrator
|
||||
* 通知回调
|
||||
* -
|
||||
* 切换的角色支持普通群成员(V2TIM_GROUP_MEMBER_ROLE_MEMBER)和管理员(V2TIM_GROUP_MEMBER_ROLE_ADMIN)
|
||||
*/
|
||||
virtual void SetGroupMemberRole(const V2TIMString& groupID, const V2TIMString& userID,
|
||||
uint32_t role, V2TIMCallback* callback) = 0;
|
||||
|
||||
/**
|
||||
* 3.9 标记群成员(从 6.6 版本开始支持,需要您购买旗舰版套餐)
|
||||
*
|
||||
* @param groupID 群 ID。
|
||||
* @param memberList 群成员 ID 列表。
|
||||
* @param markType 标记类型。数字类型,大于等于 1000,您可以自定义,一个直播群里最多允许定义 10 个标记。
|
||||
* @param enableMark true 表示添加标记,false 表示移除标记。
|
||||
*
|
||||
* @note 请注意
|
||||
* - 仅支持直播群。
|
||||
* - 只有群主才有权限标记群组中其他人。
|
||||
*/
|
||||
virtual void MarkGroupMemberList(const V2TIMString& groupID,
|
||||
const V2TIMStringVector& memberList, uint32_t markType,
|
||||
bool enableMark, V2TIMCallback* callback) = 0;
|
||||
|
||||
/**
|
||||
* 3.10 转让群主
|
||||
*
|
||||
* @note 请注意不同类型的群有如下限制:
|
||||
* - 普通类型的群(Work、Public、Meeting):只有群主才有权限进行群转让操作。
|
||||
* - 直播群(AVChatRoom):不支持转让群主。
|
||||
*/
|
||||
virtual void TransferGroupOwner(const V2TIMString& groupID, const V2TIMString& userID,
|
||||
V2TIMCallback* callback) = 0;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// 加群申请
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 4.1 获取加群申请列表
|
||||
* @note 最多支持50个
|
||||
*/
|
||||
virtual void GetGroupApplicationList(
|
||||
V2TIMValueCallback<V2TIMGroupApplicationResult>* callback) = 0;
|
||||
|
||||
/**
|
||||
* 4.2 同意某一条加群申请
|
||||
*/
|
||||
virtual void AcceptGroupApplication(const V2TIMGroupApplication& application,
|
||||
const V2TIMString& reason, V2TIMCallback* callback) = 0;
|
||||
|
||||
/**
|
||||
* 4.3 拒绝某一条加群申请
|
||||
*/
|
||||
virtual void RefuseGroupApplication(const V2TIMGroupApplication& application,
|
||||
const V2TIMString& reason, V2TIMCallback* callback) = 0;
|
||||
|
||||
/**
|
||||
* 4.4 标记申请列表为已读
|
||||
*/
|
||||
virtual void SetGroupApplicationRead(V2TIMCallback* callback) = 0;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 社群-话题
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 5.1 获取当前用户已经加入的支持话题的社群列表
|
||||
*/
|
||||
virtual void GetJoinedCommunityList(V2TIMValueCallback<V2TIMGroupInfoVector> *callback) = 0;
|
||||
|
||||
/**
|
||||
* 5.2 创建话题
|
||||
*/
|
||||
virtual void CreateTopicInCommunity(const V2TIMString &groupID, const V2TIMTopicInfo &topicInfo,
|
||||
V2TIMValueCallback<V2TIMString> *callback) = 0;
|
||||
|
||||
/**
|
||||
* 5.3 删除话题
|
||||
*/
|
||||
virtual void DeleteTopicFromCommunity(const V2TIMString &groupID,
|
||||
const V2TIMStringVector &topicIDList,
|
||||
V2TIMValueCallback<V2TIMTopicOperationResultVector> *callback) = 0;
|
||||
|
||||
/**
|
||||
* 5.4 修改话题信息
|
||||
*/
|
||||
virtual void SetTopicInfo(const V2TIMTopicInfo &topicInfo, V2TIMCallback *callback) = 0;
|
||||
|
||||
/**
|
||||
* 5.5 获取话题列表。
|
||||
* @note: topicIDList 传空时,获取此社群下的所有话题列表
|
||||
*/
|
||||
virtual void GetTopicInfoList(const V2TIMString &groupID, const V2TIMStringVector &topicIDList,
|
||||
V2TIMValueCallback<V2TIMTopicInfoResultVector> *callback) = 0;
|
||||
};
|
||||
|
||||
#endif // __V2TIM_GROUP_MANAGER_H__
|
||||
622
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMListener.h
generated
Executable file
622
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMListener.h
generated
Executable file
@@ -0,0 +1,622 @@
|
||||
// Copyright (c) 2021 Tencent. All rights reserved.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// IMSDK 全局监听类
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __V2TIM_LISTENER_H__
|
||||
#define __V2TIM_LISTENER_H__
|
||||
|
||||
#include "V2TIMCommon.h"
|
||||
#include "V2TIMConversation.h"
|
||||
#include "V2TIMFriendship.h"
|
||||
#include "V2TIMGroup.h"
|
||||
#include "V2TIMMessage.h"
|
||||
#include "V2TIMSignaling.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// (一)SDK 事件监听类
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class TIM_API V2TIMSDKListener {
|
||||
public:
|
||||
V2TIMSDKListener();
|
||||
|
||||
virtual ~V2TIMSDKListener();
|
||||
|
||||
/**
|
||||
* SDK 正在连接到腾讯云服务器
|
||||
*/
|
||||
virtual void OnConnecting() {}
|
||||
|
||||
/**
|
||||
* SDK 已经成功连接到腾讯云服务器
|
||||
*/
|
||||
virtual void OnConnectSuccess() {}
|
||||
|
||||
/**
|
||||
* SDK 连接腾讯云服务器失败
|
||||
*/
|
||||
virtual void OnConnectFailed(int error_code, const V2TIMString &error_message) {}
|
||||
|
||||
/**
|
||||
* 当前用户被踢下线,此时可以 UI 提示用户,并再次调用 V2TIMManager 的 login() 函数重新登录。
|
||||
*/
|
||||
virtual void OnKickedOffline() {}
|
||||
|
||||
/**
|
||||
* 在线时票据过期:此时您需要生成新的 userSig 并再次调用 V2TIMManager 的 login() 函数重新登录。
|
||||
*/
|
||||
virtual void OnUserSigExpired() {}
|
||||
|
||||
/**
|
||||
* 登录用户的资料发生了更新
|
||||
*
|
||||
*/
|
||||
virtual void OnSelfInfoUpdated(const V2TIMUserFullInfo &info) {}
|
||||
|
||||
/**
|
||||
* 用户状态变更通知
|
||||
*
|
||||
* @note 收到通知的情况:
|
||||
* 1. 订阅过的用户发生了状态变更(包括在线状态和自定义状态),会触发该回调
|
||||
* 2. 在 IM 控制台打开了好友状态通知开关,即使未主动订阅,当好友状态发生变更时,也会触发该回调
|
||||
* 3. 同一个账号多设备登录,当其中一台设备修改了自定义状态,所有设备都会收到该回调
|
||||
*/
|
||||
virtual void OnUserStatusChanged(const V2TIMUserStatusVector &userStatusList) {}
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// (二)基本消息(文本消息和自定义消息)的事件监听类
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class TIM_API V2TIMSimpleMsgListener {
|
||||
public:
|
||||
V2TIMSimpleMsgListener();
|
||||
|
||||
virtual ~V2TIMSimpleMsgListener();
|
||||
|
||||
/**
|
||||
* 收到 C2C 文本消息
|
||||
*
|
||||
* @param msgID 消息唯一标识
|
||||
* @param sender 发送方信息
|
||||
* @param text 发送内容
|
||||
*/
|
||||
virtual void OnRecvC2CTextMessage(const V2TIMString &msgID, const V2TIMUserFullInfo &sender,
|
||||
const V2TIMString &text) {}
|
||||
|
||||
/**
|
||||
* 收到 C2C 自定义(信令)消息
|
||||
*
|
||||
* @param msgID 消息唯一标识
|
||||
* @param sender 发送方信息
|
||||
* @param customData 发送内容
|
||||
*/
|
||||
virtual void OnRecvC2CCustomMessage(const V2TIMString &msgID, const V2TIMUserFullInfo &sender,
|
||||
const V2TIMBuffer &customData) {}
|
||||
|
||||
/**
|
||||
* 收到群文本消息
|
||||
*
|
||||
* @param msgID 消息唯一标识
|
||||
* @param groupID 群 ID
|
||||
* @param sender 发送方群成员信息
|
||||
* @param text 发送内容
|
||||
*/
|
||||
virtual void OnRecvGroupTextMessage(const V2TIMString &msgID, const V2TIMString &groupID,
|
||||
const V2TIMGroupMemberFullInfo &sender,
|
||||
const V2TIMString &text) {}
|
||||
|
||||
/**
|
||||
* 收到群自定义(信令)消息
|
||||
*
|
||||
* @param msgID 消息唯一标识
|
||||
* @param groupID 群 ID
|
||||
* @param sender 发送方群成员信息
|
||||
* @param customData 发送内容
|
||||
*/
|
||||
virtual void OnRecvGroupCustomMessage(const V2TIMString &msgID, const V2TIMString &groupID,
|
||||
const V2TIMGroupMemberFullInfo &sender,
|
||||
const V2TIMBuffer &customData) {}
|
||||
};
|
||||
|
||||
DEFINE_POINT_VECTOR(V2TIMSimpleMsgListener)
|
||||
typedef TXPV2TIMSimpleMsgListenerVector V2TIMSimpleMsgListenerVector;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// (三)高级消息监听器
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class TIM_API V2TIMAdvancedMsgListener {
|
||||
public:
|
||||
V2TIMAdvancedMsgListener();
|
||||
|
||||
virtual ~V2TIMAdvancedMsgListener();
|
||||
|
||||
/**
|
||||
* 收到新消息
|
||||
*
|
||||
* @param message 消息
|
||||
*/
|
||||
virtual void OnRecvNewMessage(const V2TIMMessage &message) {}
|
||||
|
||||
/**
|
||||
* C2C 对端用户会话已读通知(如果对端用户调用 MarkC2CMessageAsRead 接口,自己会收到该回调,回调只会携带对端 userID 和对端已读 timestamp 信息)
|
||||
*
|
||||
* @param receiptList 已读回执列表
|
||||
*/
|
||||
virtual void OnRecvC2CReadReceipt(const V2TIMMessageReceiptVector &receiptList) {}
|
||||
|
||||
/**
|
||||
* 消息已读回执通知
|
||||
*
|
||||
* @param receiptList 已读回执列表
|
||||
*/
|
||||
virtual void OnRecvMessageReadReceipts(const V2TIMMessageReceiptVector &receiptList) {}
|
||||
|
||||
/**
|
||||
* 收到消息撤回的通知
|
||||
*
|
||||
* @param messageID 消息唯一标识
|
||||
*/
|
||||
virtual void OnRecvMessageRevoked(const V2TIMString &messageID) {}
|
||||
|
||||
/**
|
||||
* 消息内容被修改
|
||||
*/
|
||||
virtual void OnRecvMessageModified(const V2TIMMessage &message) {}
|
||||
|
||||
/**
|
||||
* 消息扩展信息更新
|
||||
*/
|
||||
virtual void OnRecvMessageExtensionsChanged(const V2TIMString &msgID,
|
||||
const V2TIMMessageExtensionVector &extensions) {}
|
||||
|
||||
/**
|
||||
* 消息扩展信息被删除
|
||||
*/
|
||||
virtual void OnRecvMessageExtensionsDeleted(const V2TIMString &msgID,
|
||||
const V2TIMStringVector &extensionKeys) {}
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// (四)群组事件的监听类
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class TIM_API V2TIMGroupListener {
|
||||
public:
|
||||
V2TIMGroupListener();
|
||||
|
||||
virtual ~V2TIMGroupListener();
|
||||
|
||||
/**
|
||||
* 有新成员加入群(该群所有的成员都能收到)
|
||||
* 会议群(Meeting)默认无此回调,如需回调,请前往 [控制台](https://console.cloud.tencent.com/im)
|
||||
* (功能配置 -> 群组配置 -> 群系统通知配置 -> 群成员变更通知) 主动配置。
|
||||
*
|
||||
* @param groupID 群 ID
|
||||
* @param memberList 加入的成员
|
||||
*/
|
||||
virtual void OnMemberEnter(const V2TIMString &groupID,
|
||||
const V2TIMGroupMemberInfoVector &memberList) {}
|
||||
|
||||
/**
|
||||
* 有成员离开群(该群所有的成员都能收到)
|
||||
* 会议群(Meeting)默认无此回调,如需回调,请前往 [控制台](https://console.cloud.tencent.com/im)
|
||||
* (功能配置 -> 群组配置 -> 群系统通知配置 -> 群成员变更通知) 主动配置。
|
||||
*
|
||||
* @param groupID 群 ID
|
||||
* @param member 离开的成员
|
||||
*/
|
||||
virtual void OnMemberLeave(const V2TIMString &groupID, const V2TIMGroupMemberInfo &member) {}
|
||||
|
||||
/**
|
||||
* 某成员被拉入某群(该群所有的成员都能收到)
|
||||
*
|
||||
* @param groupID 群 ID
|
||||
* @param opUser 处理人
|
||||
* @param memberList 被拉进群成员
|
||||
*/
|
||||
virtual void OnMemberInvited(const V2TIMString &groupID, const V2TIMGroupMemberInfo &opUser,
|
||||
const V2TIMGroupMemberInfoVector &memberList) {}
|
||||
|
||||
/**
|
||||
* 有成员被踢出某群(该群所有的成员都能收到)
|
||||
*
|
||||
* @param groupID 群 ID
|
||||
* @param opUser 处理人
|
||||
* @param memberList 被踢成员
|
||||
*/
|
||||
virtual void OnMemberKicked(const V2TIMString &groupID, const V2TIMGroupMemberInfo &opUser,
|
||||
const V2TIMGroupMemberInfoVector &memberList) {}
|
||||
|
||||
/**
|
||||
* 某成员信息发生变更(该群所有的成员都能收到)。
|
||||
* @note 会议群(Meeting)和直播群(AVChatRoom)默认无此回调,如需回调,请前往 [控制台](https://console.cloud.tencent.com/im) (功能配置 -> 群组配置 -> 群系统通知配置 -> 群成员资料变更通知) 主动配置。
|
||||
*
|
||||
* @param groupID 群 ID
|
||||
* @param v2TIMGroupMemberChangeInfoList 被修改的群成员信息
|
||||
*/
|
||||
virtual void OnMemberInfoChanged(
|
||||
const V2TIMString &groupID,
|
||||
const V2TIMGroupMemberChangeInfoVector &v2TIMGroupMemberChangeInfoList) {}
|
||||
|
||||
/**
|
||||
* 创建群(主要用于多端同步)
|
||||
*
|
||||
* @param groupID 群 ID
|
||||
*/
|
||||
virtual void OnGroupCreated(const V2TIMString &groupID) {}
|
||||
|
||||
/**
|
||||
* 群被解散了(全员能收到)
|
||||
*
|
||||
* @param groupID 群 ID
|
||||
* @param opUser 处理人
|
||||
*/
|
||||
virtual void OnGroupDismissed(const V2TIMString &groupID, const V2TIMGroupMemberInfo &opUser) {}
|
||||
|
||||
/**
|
||||
* 群被回收(全员能收到)
|
||||
*
|
||||
* @param groupID 群 ID
|
||||
* @param opUser 处理人
|
||||
*/
|
||||
virtual void OnGroupRecycled(const V2TIMString &groupID, const V2TIMGroupMemberInfo &opUser) {}
|
||||
|
||||
/**
|
||||
* 群信息被修改(全员能收到)
|
||||
* 以下字段的修改可能会引发该通知 groupName & introduction & notification & faceUrl & owner & allMute & custom
|
||||
* 控制指定字段 下发通知/存漫游 请前往 [控制台](https://console.cloud.tencent.com/im) (功能配置 -> 群组配置 -> 群系统通知配置 -> 群资料变更通知) 主动配置。
|
||||
*
|
||||
* @param changeInfos 修改的群信息
|
||||
*/
|
||||
virtual void OnGroupInfoChanged(const V2TIMString &groupID,
|
||||
const V2TIMGroupChangeInfoVector &changeInfos) {}
|
||||
|
||||
/**
|
||||
* 收到群属性更新的回调
|
||||
*
|
||||
* @param groupID 群 ID
|
||||
* @param groupAttributeMap 群的所有属性
|
||||
*/
|
||||
virtual void OnGroupAttributeChanged(const V2TIMString &groupID,
|
||||
const V2TIMGroupAttributeMap &groupAttributeMap) {}
|
||||
|
||||
/**
|
||||
* 某个已加入的群的计数器被修改了(全员能收到)
|
||||
*
|
||||
* @param groupID 群 ID
|
||||
* @param key 当前变更的群计数器的 key
|
||||
* @param newValue 变更之后的 value
|
||||
*/
|
||||
virtual void OnGroupCounterChanged(const V2TIMString &groupID,
|
||||
const V2TIMString &key, int64_t newValue) {}
|
||||
|
||||
/**
|
||||
* 有新的加群请求(只有群主或管理员会收到)
|
||||
*
|
||||
* @param groupID 群 ID
|
||||
* @param member 申请人
|
||||
* @param opReason 申请原因
|
||||
*/
|
||||
virtual void OnReceiveJoinApplication(const V2TIMString &groupID,
|
||||
const V2TIMGroupMemberInfo &member,
|
||||
const V2TIMString &opReason) {}
|
||||
|
||||
/**
|
||||
* 加群请求已经被群主或管理员处理了(只有申请人能够收到)
|
||||
*
|
||||
* @param groupID 群 ID
|
||||
* @param opUser 处理人
|
||||
* @param isAgreeJoin 是否同意加群
|
||||
* @param opReason 处理原因
|
||||
*/
|
||||
virtual void OnApplicationProcessed(const V2TIMString &groupID,
|
||||
const V2TIMGroupMemberInfo &opUser, bool isAgreeJoin,
|
||||
const V2TIMString &opReason) {}
|
||||
|
||||
/**
|
||||
* 指定管理员身份
|
||||
*
|
||||
* @param groupID 群 ID
|
||||
* @param opUser 处理人
|
||||
* @param memberList 被处理的群成员
|
||||
*/
|
||||
virtual void OnGrantAdministrator(const V2TIMString &groupID,
|
||||
const V2TIMGroupMemberInfo &opUser,
|
||||
const V2TIMGroupMemberInfoVector &memberList) {}
|
||||
|
||||
/**
|
||||
* 取消管理员身份
|
||||
*
|
||||
* @param groupID 群 ID
|
||||
* @param opUser 处理人
|
||||
* @param memberList 被处理的群成员
|
||||
*/
|
||||
virtual void OnRevokeAdministrator(const V2TIMString &groupID,
|
||||
const V2TIMGroupMemberInfo &opUser,
|
||||
const V2TIMGroupMemberInfoVector &memberList) {}
|
||||
|
||||
/**
|
||||
* 主动退出群组(主要用于多端同步,直播群(AVChatRoom)不支持)
|
||||
*
|
||||
* @param groupID 群 ID
|
||||
*/
|
||||
virtual void OnQuitFromGroup(const V2TIMString &groupID) {}
|
||||
|
||||
/**
|
||||
* 收到 RESTAPI 下发的自定义系统消息
|
||||
*
|
||||
* @param groupID 群 ID
|
||||
* @param customData 自定义数据
|
||||
*/
|
||||
virtual void OnReceiveRESTCustomData(const V2TIMString &groupID,
|
||||
const V2TIMBuffer &customData) {}
|
||||
|
||||
/**
|
||||
* 话题创建
|
||||
*
|
||||
* @param topicID 话题 ID
|
||||
*/
|
||||
virtual void OnTopicCreated(const V2TIMString &groupID, const V2TIMString &topicID) {}
|
||||
|
||||
/**
|
||||
* 话题被删除
|
||||
* @param groupID 话题所属的社群 ID
|
||||
* @param topicIDList 话题列表
|
||||
*/
|
||||
virtual void OnTopicDeleted(const V2TIMString &groupID, const V2TIMStringVector &topicIDList) {}
|
||||
|
||||
/**
|
||||
* 话题更新
|
||||
* @param topicInfo 话题信息
|
||||
*/
|
||||
virtual void OnTopicChanged(const V2TIMString &groupID, const V2TIMTopicInfo &topicInfo) {}
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// (五)日志监听类
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class TIM_API V2TIMLogListener {
|
||||
public:
|
||||
V2TIMLogListener();
|
||||
|
||||
virtual ~V2TIMLogListener();
|
||||
|
||||
/**
|
||||
* 14.1 有日志打印时的回调
|
||||
*
|
||||
* @param logLevel 日志等级, 参见 V2TIMLogLevel
|
||||
* @param logContent 日志内容
|
||||
*/
|
||||
virtual void OnLog(V2TIMLogLevel logLevel, const V2TIMString &logContent) {}
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// (六)会话事件的监听类
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class TIM_API V2TIMConversationListener {
|
||||
public:
|
||||
V2TIMConversationListener();
|
||||
|
||||
virtual ~V2TIMConversationListener();
|
||||
|
||||
/**
|
||||
* 同步服务器会话开始,SDK
|
||||
* 会在登录成功或者断网重连后自动同步服务器会话,您可以监听这个事件做一些 UI 进度展示操作。
|
||||
*/
|
||||
virtual void OnSyncServerStart() {}
|
||||
|
||||
/**
|
||||
* 同步服务器会话完成,如果会话有变更,会通过 OnNewConversation | OnConversationChanged
|
||||
* 回调告知客户
|
||||
*/
|
||||
virtual void OnSyncServerFinish() {}
|
||||
|
||||
/**
|
||||
* 同步服务器会话失败
|
||||
*/
|
||||
virtual void OnSyncServerFailed() {}
|
||||
|
||||
/**
|
||||
* 有新的会话(比如收到一个新同事发来的单聊消息、或者被拉入了一个新的群组中),可以根据会话的
|
||||
* lastMessage -> timestamp 重新对会话列表做排序
|
||||
*
|
||||
* @param conversationList 会话列表
|
||||
*/
|
||||
virtual void OnNewConversation(const V2TIMConversationVector &conversationList) {}
|
||||
|
||||
/**
|
||||
* 某些会话的关键信息发生变化(未读计数发生变化、最后一条消息被更新等等),可以根据会话的
|
||||
* lastMessage -> timestamp 重新对会话列表做排序
|
||||
*
|
||||
* @param conversationList 会话列表
|
||||
*/
|
||||
virtual void OnConversationChanged(const V2TIMConversationVector &conversationList) {}
|
||||
|
||||
/**
|
||||
* 全部会话未读总数变更的通知(5.3.425 及以上版本支持)
|
||||
*
|
||||
* @note
|
||||
* - 当您调用 GetTotalUnreadMessageCount 获取全部会话未读总数以后,任意会话的未读数发生变化时,SDK 都会通过该回调把最新的未读总数通知给您。
|
||||
* - 未读总数会减去设置为免打扰的会话的未读数,即消息接收选项设置为
|
||||
* V2TIM_NOT_RECEIVE_MESSAGE or V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE 的会话。
|
||||
*/
|
||||
virtual void OnTotalUnreadMessageCountChanged(uint64_t totalUnreadCount) {}
|
||||
|
||||
/**
|
||||
* 根据 filter 过滤的未读消息总数变更通知(7.0 及以上版本支持)
|
||||
* @note
|
||||
* - 您可以调用 SubscribeUnreadMessageCountByFilter 注册监听指定 filter 下的未读总数变化,SDK 通过这个回调把最新的未读总数通知给您。
|
||||
* - 您可以注册监听多个不同 filter 下的未读总数变化,这个回调的 filter 参数就是注册监听时指定的 filter,该 filter 携带了 conversationType、conversationGroup 和 markType 三个字段,通过判断这三字段是不是都相同,来区分出不同的 filter。
|
||||
* - 未读总数会减去设置为免打扰的会话的未读数,即消息接收选项设置为
|
||||
* V2TIM_NOT_RECEIVE_MESSAGE or V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE 的会话。
|
||||
*/
|
||||
virtual void OnUnreadMessageCountChangedByFilter(const V2TIMConversationListFilter &filter, uint64_t totalUnreadCount) {}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 会话分组相关通知(从 6.5 版本开始支持)
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 会话分组被创建
|
||||
*/
|
||||
virtual void OnConversationGroupCreated(const V2TIMString &groupName,
|
||||
const V2TIMConversationVector &conversationList) {}
|
||||
|
||||
/**
|
||||
* 会话分组被删除
|
||||
*/
|
||||
virtual void OnConversationGroupDeleted(const V2TIMString &groupName) {}
|
||||
|
||||
/**
|
||||
* 会话分组名变更
|
||||
*/
|
||||
virtual void OnConversationGroupNameChanged(const V2TIMString &oldName, const V2TIMString &newName) {}
|
||||
|
||||
/**
|
||||
* 会话分组新增会话
|
||||
*/
|
||||
virtual void OnConversationsAddedToGroup(const V2TIMString &groupName,
|
||||
const V2TIMConversationVector &conversationList) {}
|
||||
|
||||
/**
|
||||
* 会话分组删除会话
|
||||
*/
|
||||
virtual void OnConversationsDeletedFromGroup(const V2TIMString &groupName,
|
||||
const V2TIMConversationVector &conversationList) {}
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// (七)关系链事件的监听类
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class TIM_API V2TIMFriendshipListener {
|
||||
public:
|
||||
V2TIMFriendshipListener();
|
||||
|
||||
virtual ~V2TIMFriendshipListener();
|
||||
|
||||
/**
|
||||
* 好友申请新增通知,两种情况会收到这个回调:
|
||||
* 1. 自己申请加别人好友
|
||||
* 2. 别人申请加自己好友
|
||||
*/
|
||||
virtual void OnFriendApplicationListAdded(const V2TIMFriendApplicationVector &applicationList) {}
|
||||
|
||||
/**
|
||||
* 好友申请删除通知,四种情况会收到这个回调
|
||||
* 1. 调用 DeleteFriendApplication 主动删除好友申请
|
||||
* 2. 调用 RefuseFriendApplication 拒绝好友申请
|
||||
* 3. 调用 AcceptFriendApplication 同意好友申请且同意类型为 V2TIM_FRIEND_ACCEPT_AGREE 时
|
||||
* 4. 申请加别人好友被拒绝
|
||||
*/
|
||||
virtual void OnFriendApplicationListDeleted(const V2TIMStringVector &userIDList) {}
|
||||
|
||||
/**
|
||||
* 好友申请已读通知,如果调用 setFriendApplicationRead
|
||||
* 设置好友申请列表已读,会收到这个回调(主要用于多端同步)
|
||||
*/
|
||||
virtual void OnFriendApplicationListRead() {}
|
||||
|
||||
/**
|
||||
* 好友新增通知
|
||||
*/
|
||||
virtual void OnFriendListAdded(const V2TIMFriendInfoVector &userIDList) {}
|
||||
|
||||
/**
|
||||
* 好友删除通知,,两种情况会收到这个回调:
|
||||
* 1. 自己删除好友(单向和双向删除都会收到回调)
|
||||
* 2. 好友把自己删除(双向删除会收到)
|
||||
*/
|
||||
virtual void OnFriendListDeleted(const V2TIMStringVector &userIDList) {}
|
||||
|
||||
/**
|
||||
* 黑名单新增通知
|
||||
*/
|
||||
virtual void OnBlackListAdded(const V2TIMFriendInfoVector &infoList) {}
|
||||
|
||||
/**
|
||||
* 黑名单删除通知
|
||||
*/
|
||||
virtual void OnBlackListDeleted(const V2TIMStringVector &userIDList) {}
|
||||
|
||||
/**
|
||||
* 好友资料更新通知
|
||||
*/
|
||||
virtual void OnFriendInfoChanged(const V2TIMFriendInfoVector &infoList) {}
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// (八)信令事件监听类
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class TIM_API V2TIMSignalingListener {
|
||||
public:
|
||||
V2TIMSignalingListener();
|
||||
|
||||
virtual ~V2TIMSignalingListener();
|
||||
|
||||
/**
|
||||
* 收到邀请
|
||||
*/
|
||||
virtual void OnReceiveNewInvitation(const V2TIMString &inviteID, const V2TIMString &inviter,
|
||||
const V2TIMString &groupID,
|
||||
const V2TIMStringVector &inviteeList,
|
||||
const V2TIMString &data) {}
|
||||
|
||||
/**
|
||||
* 被邀请者接受邀请
|
||||
*/
|
||||
virtual void OnInviteeAccepted(const V2TIMString &inviteID, const V2TIMString &invitee,
|
||||
const V2TIMString &data) {}
|
||||
|
||||
/**
|
||||
* 被邀请者拒绝邀请
|
||||
*/
|
||||
virtual void OnInviteeRejected(const V2TIMString &inviteID, const V2TIMString &invitee,
|
||||
const V2TIMString &data) {}
|
||||
|
||||
/**
|
||||
* 邀请被取消
|
||||
*/
|
||||
virtual void OnInvitationCancelled(const V2TIMString &inviteID, const V2TIMString &inviter,
|
||||
const V2TIMString &data) {}
|
||||
|
||||
/**
|
||||
* 邀请超时
|
||||
*/
|
||||
virtual void OnInvitationTimeout(const V2TIMString &inviteID,
|
||||
const V2TIMStringVector &inviteeList) {}
|
||||
|
||||
/**
|
||||
* 邀请被修改(6.7 及其以上版本支持)
|
||||
*/
|
||||
virtual void OnInvitationModified(const V2TIMString &inviteID, const V2TIMString &data) {}
|
||||
};
|
||||
|
||||
#endif /* __V2TIM_LISTENER_H__ */
|
||||
405
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMManagerEx.h
generated
Executable file
405
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMManagerEx.h
generated
Executable file
@@ -0,0 +1,405 @@
|
||||
// Copyright (c) 2021 Tencent. All rights reserved.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// IMSDK 主核心类,负责 IMSDK 的初始化、登录、消息收发,建群退群等功能
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __V2TIM_MANAGER_H__
|
||||
#define __V2TIM_MANAGER_H__
|
||||
|
||||
#include "V2TIMCallback.h"
|
||||
#include "V2TIMCommon.h"
|
||||
#include "V2TIMFriendship.h"
|
||||
#include "V2TIMGroup.h"
|
||||
#include "V2TIMListener.h"
|
||||
#include "V2TIMMessage.h"
|
||||
|
||||
class V2TIMMessageManager;
|
||||
class V2TIMGroupManager;
|
||||
class V2TIMConversationManager;
|
||||
class V2TIMFriendshipManager;
|
||||
class V2TIMOfflinePushManager;
|
||||
class V2TIMSignalingManager;
|
||||
|
||||
class TIM_API V2TIMManager {
|
||||
public:
|
||||
virtual ~V2TIMManager() {}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 初始化
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 1.1 获取 V2TIMManager 管理器实例。
|
||||
*/
|
||||
static V2TIMManager *GetInstance();
|
||||
|
||||
/**
|
||||
* 1.2 添加 SDK 监听
|
||||
*/
|
||||
virtual void AddSDKListener(V2TIMSDKListener *listener) = 0;
|
||||
|
||||
/**
|
||||
* 1.3 移除 SDK 监听
|
||||
*/
|
||||
virtual void RemoveSDKListener(V2TIMSDKListener* listener) = 0;
|
||||
|
||||
/**
|
||||
* 1.4 初始化 SDK
|
||||
*
|
||||
* @param sdkAppID 应用 ID,必填项,可以在[控制台](https://console.cloud.tencent.com/im)中获取
|
||||
* @param config 配置信息
|
||||
* @return true:成功;false:失败
|
||||
*/
|
||||
virtual bool InitSDK(uint32_t sdkAppID, const V2TIMSDKConfig &config) = 0;
|
||||
|
||||
/**
|
||||
* 1.5 反初始化 SDK
|
||||
*
|
||||
*/
|
||||
virtual void UnInitSDK() = 0;
|
||||
|
||||
/**
|
||||
* 1.6 获取 SDK 版本
|
||||
* @return 返回版本号,字符串表示,例如 5.0.10
|
||||
*/
|
||||
virtual V2TIMString GetVersion() = 0;
|
||||
|
||||
/**
|
||||
* 1.7 获取服务器当前时间
|
||||
*
|
||||
* 可用于信令离线推送场景下超时判断。
|
||||
*
|
||||
* 示例:
|
||||
* 信令邀请方:设置邀请的服务器时间 serverTime 。
|
||||
* 信令接收方:收到信令推送,根据 serverTime 判断信令是否超时 。
|
||||
*
|
||||
* @return 服务器时间,单位 s
|
||||
*/
|
||||
virtual int64_t GetServerTime() = 0;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 登录登出
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 2.1 登录
|
||||
*
|
||||
* 登录需要设置用户名 userID 和用户签名 userSig,userSig 生成请参考 [UserSig 后台
|
||||
* API](https://cloud.tencent.com/document/product/269/32688)。
|
||||
*
|
||||
* @note 请注意如下特殊逻辑:
|
||||
* - 登陆时票据过期:Login 函数的回调会返回 ERR_USER_SIG_EXPIRED:6206 错误码,此时生成新的 userSig 重新登录。
|
||||
* - 在线时票据过期:用户在线期间也可能收到 V2TIMSDKListener::OnUserSigExpired 回调,此时也是需要您生成新的 userSig 并重新登录。
|
||||
* - 在线时被踢下线:用户在线情况下被踢,SDK 会通过 V2TIMSDKListener::OnKickedOffline 回调通知给您,此时可以 UI 提示用户,并再次调用 Login() 重新登录。
|
||||
* - 同平台多设备在线:该功能为IM旗舰版功能,购买[旗舰版套餐包](https://buy.cloud.tencent.com/avc?from=17487)后可使用,详见[价格说明](https://cloud.tencent.com/document/product/269/11673?from=17224#.E5.9F.BA.E7.A1.80.E6.9C.8D.E5.8A.A1.E8.AF.A6.E6.83.85)。
|
||||
*/
|
||||
virtual void Login(const V2TIMString &userID, const V2TIMString &userSig,
|
||||
V2TIMCallback *callback) = 0;
|
||||
|
||||
/**
|
||||
*
|
||||
* 2.2 登出
|
||||
*
|
||||
* 退出登录,如果切换账号,需要 Logout 回调成功或者失败后才能再次 Login,否则 Login 可能会失败。
|
||||
*/
|
||||
virtual void Logout(V2TIMCallback *callback) = 0;
|
||||
|
||||
/**
|
||||
* 2.3 获取登录用户
|
||||
*/
|
||||
virtual V2TIMString GetLoginUser() = 0;
|
||||
|
||||
/**
|
||||
* 2.4 获取登录状态
|
||||
*
|
||||
* 如果用户已经处于已登录和登录中状态,请勿再频繁调用登录接口登录。
|
||||
*
|
||||
* @return 登录状态
|
||||
*/
|
||||
virtual V2TIMLoginStatus GetLoginStatus() = 0;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 消息收发
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 3.1 设置基本消息(文本消息和自定义消息)的事件监听器
|
||||
*
|
||||
* @note 图片消息、视频消息、语音消息等高级消息的监听,请参考: @ref V2TIMMessageManager::AddAdvancedMsgListener() 接口。
|
||||
*
|
||||
*/
|
||||
virtual void AddSimpleMsgListener(V2TIMSimpleMsgListener *listener) = 0;
|
||||
|
||||
/**
|
||||
* 3.2 移除基本消息(文本消息和自定义消息)的事件监听器
|
||||
*/
|
||||
virtual void RemoveSimpleMsgListener(V2TIMSimpleMsgListener *listener) = 0;
|
||||
|
||||
/**
|
||||
* 3.3 发送单聊普通文本消息(最大支持 12KB)
|
||||
*
|
||||
* 文本消息支持云端的脏词过滤,如果用户发送的消息中有敏感词,callback 回调将会返回 ERR_SVR_COMM_SENSITIVE_TEXT(80001) 错误码。
|
||||
*
|
||||
* @return 返回消息的唯一标识 ID
|
||||
*/
|
||||
virtual V2TIMString SendC2CTextMessage(const V2TIMString &text, const V2TIMString &userID,
|
||||
V2TIMSendCallback *callback) = 0;
|
||||
|
||||
/**
|
||||
* 3.4 发送单聊自定义(信令)消息(最大支持 12KB)
|
||||
*
|
||||
* 自定义消息本质就是一端二进制
|
||||
* buffer,您可以在其上自由组织自己的消息格式(常用于发送信令),但是自定义消息不支持云端敏感词过滤。
|
||||
*
|
||||
* @return 返回消息的唯一标识 ID
|
||||
* @note 该接口发送的消息默认不会推送,如果需要推送,请调用 @ref
|
||||
* V2TIMMessageManager::SendMessage 接口。
|
||||
*/
|
||||
virtual V2TIMString SendC2CCustomMessage(const V2TIMBuffer &customData,
|
||||
const V2TIMString &userID,
|
||||
V2TIMSendCallback *callback) = 0;
|
||||
|
||||
/**
|
||||
* 3.5 发送群聊普通文本消息(最大支持 12KB)
|
||||
*
|
||||
* @param priority 设置消息的优先级,我们没有办法所有消息都能 100%
|
||||
* 送达每一个用户,但高优先级的消息会有更高的送达成功率。
|
||||
* - @ref
|
||||
* V2TIM_PRIORITY_HIGH:云端会优先传输,适用于在群里发送重要消息,比如主播发送的文本消息等。
|
||||
* - @ref
|
||||
* V2TIM_PRIORITY_NORMAL:云端按默认优先级传输,适用于在群里发送非重要消息,比如观众发送的弹幕消息等。
|
||||
* @return 返回消息的唯一标识 ID
|
||||
*/
|
||||
virtual V2TIMString SendGroupTextMessage(const V2TIMString &text, const V2TIMString &groupID,
|
||||
V2TIMMessagePriority priority,
|
||||
V2TIMSendCallback *callback) = 0;
|
||||
|
||||
/**
|
||||
* 3.6 发送群聊自定义(信令)消息(最大支持 12KB)
|
||||
*
|
||||
* @param priority 设置消息的优先级,我们没有办法所有消息都能 100%
|
||||
* 送达每一个用户,但高优先级的消息会有更高的送达成功率。
|
||||
* - @ref
|
||||
* V2TIM_PRIORITY_HIGH:云端会优先传输,适用于在群里发送重要信令,比如连麦邀请,PK邀请、礼物赠送等关键性信令。
|
||||
* - @ref
|
||||
* V2TIM_PRIORITY_NORMAL:云端按默认优先级传输,适用于在群里发送非重要信令,比如观众的点赞提醒等等。
|
||||
* @return 返回消息的唯一标识 ID
|
||||
* @note 该接口发送的消息默认不会推送,如果需要推送,请调用 @ref
|
||||
* V2TIMMessageManager::SendMessage 接口。
|
||||
*/
|
||||
virtual V2TIMString SendGroupCustomMessage(const V2TIMBuffer &customData,
|
||||
const V2TIMString &groupID,
|
||||
V2TIMMessagePriority priority,
|
||||
V2TIMSendCallback *callback) = 0;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 群相关操作
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 4.1 设置群组监听器
|
||||
*/
|
||||
virtual void AddGroupListener(V2TIMGroupListener *listener) = 0;
|
||||
|
||||
/**
|
||||
* 4.2 设置群组监听器
|
||||
*/
|
||||
virtual void RemoveGroupListener(V2TIMGroupListener *listener) = 0;
|
||||
|
||||
/**
|
||||
* 4.3 创建群组
|
||||
*
|
||||
* @param groupType
|
||||
* 群类型,我们为您预定义好了几种常用的群类型,您也可以在控制台定义自己需要的群类型:
|
||||
* - "Work" :工作群,成员上限 200 人,不支持由用户主动加入,需要他人邀请入群,适合用于类似微信中随意组建的工作群(对应老版本的 Private 群)。
|
||||
* - "Public" :公开群,成员上限 2000 人,任何人都可以申请加群,但加群需群主或管理员审批,适合用于类似 QQ 中由群主管理的兴趣群。
|
||||
* - "Meeting" :会议群,成员上限 6000 人,任何人都可以自由进出,且加群无需被审批,适合用于视频会议和在线培训等场景(对应老版本的 ChatRoom 群)。
|
||||
* - "Community" :社群,成员上限 100000 人,任何人都可以自由进出,且加群无需被审批,适合用于知识分享和游戏交流等超大社区群聊场景。5.8 版本开始支持,需要您购买旗舰版套餐。
|
||||
* - "AVChatRoom" :直播群,人数无上限,任何人都可以自由进出,消息吞吐量大,适合用作直播场景中的高并发弹幕聊天室。
|
||||
*
|
||||
* @param groupID 自定义群组 ID,可以传空字符串,此时系统会自动分配 groupID,并通过 callback 返回。
|
||||
* "Community" 类型自定义群组 ID 必须以 "@TGS#_" 作为前缀。
|
||||
* @param groupName 群名称,不能为空字符串。
|
||||
*
|
||||
* @note 请注意如下特殊逻辑:
|
||||
* - 不支持在同一个 SDKAPPID 下创建两个相同 groupID 的群。
|
||||
* - 社群(Community)功能仅 5.8.1668 增强版及以上版本支持,需[购买旗舰版套餐包](https://buy.cloud.tencent.com/avc?from=17213)并[申请开通](https://cloud.tencent.com/document/product/269/3916?from=17215)后方可使用。
|
||||
* - 直播群(AVChatRoom):在进程重启或重新登录之后,如果想继续接收直播群的消息,请您调用 joinGroup 重新加入直播群。
|
||||
*/
|
||||
virtual void CreateGroup(const V2TIMString &groupType, const V2TIMString &groupID,
|
||||
const V2TIMString &groupName,
|
||||
V2TIMValueCallback<V2TIMString> *callback) = 0;
|
||||
|
||||
/**
|
||||
* 4.4 加入群组
|
||||
*
|
||||
* @note 请注意如下特殊逻辑:
|
||||
* - 工作群(Work):不能主动入群,只能通过群成员调用 V2TIMGroupManager::InviteUserToGroup() 接口邀请入群。
|
||||
* - 公开群(Public):申请入群后,需要管理员审批,管理员在收到 V2TIMGroupListener::OnReceiveJoinApplication 回调后调用
|
||||
* V2TIMGroupManager::GetGroupApplicationList() 接口处理加群请求。
|
||||
* - 其他群:可以直接入群。
|
||||
* - 直播群(AVChatRoom):在进程重启或重新登录之后,如果想继续接收直播群的消息,请您调用 joinGroup 重新加入直播群。
|
||||
* - 直播群(AVChatRoom):直播群新成员可以查看入群前消息,该功能为 IM 旗舰版功能,[购买旗舰版套餐包](https://buy.cloud.tencent.com/avc?from=17484)后可使用,详见[价格说明](https://cloud.tencent.com/document/product/269/11673?from=17179#.E5.9F.BA.E7.A1.80.E6.9C.8D.E5.8A.A1.E8.AF.A6.E6.83.85)
|
||||
*/
|
||||
virtual void JoinGroup(const V2TIMString &groupID, const V2TIMString &message,
|
||||
V2TIMCallback *callback) = 0;
|
||||
|
||||
/**
|
||||
* 4.5 退出群组
|
||||
*
|
||||
* @note 在公开群(Public)、会议(Meeting)和直播群(AVChatRoom)中,群主是不可以退群的,群主只能调用 DismissGroup 解散群组。
|
||||
*/
|
||||
virtual void QuitGroup(const V2TIMString &groupID, V2TIMCallback *callback) = 0;
|
||||
|
||||
/**
|
||||
* 4.6 解散群组
|
||||
* @note 请注意如下特殊逻辑:
|
||||
* - Work:任何人都无法解散群组。
|
||||
* - 其他群:群主可以解散群组。
|
||||
*/
|
||||
virtual void DismissGroup(const V2TIMString &groupID, V2TIMCallback *callback) = 0;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 资料相关操作
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 5.1 获取用户资料
|
||||
*
|
||||
* @note 请注意:
|
||||
* - 获取自己的资料,传入自己的 ID 即可。
|
||||
* - userIDList 建议一次最大 100 个,因为数量过多可能会导致数据包太大被后台拒绝,后台限制数据包最大为 1MB。
|
||||
*/
|
||||
virtual void GetUsersInfo(const V2TIMStringVector &userIDList,
|
||||
V2TIMValueCallback<V2TIMUserFullInfoVector> *callback) = 0;
|
||||
|
||||
/**
|
||||
* 5.2 修改个人资料
|
||||
*/
|
||||
virtual void SetSelfInfo(const V2TIMUserFullInfo &info, V2TIMCallback *callback) = 0;
|
||||
|
||||
/**
|
||||
* 5.3 查询用户状态,从 6.3 版本开始支持
|
||||
*
|
||||
* @param userIDList 需要获取的用户 ID
|
||||
*
|
||||
* @note 请注意:
|
||||
* - 如果您想查询自己的自定义状态,您只需要传入自己的 userID 即可
|
||||
* - 当您批量查询时,接口只会返回查询成功的用户状态信息;当所有用户均查询失败时,接口会报错
|
||||
* - 查询其他用户状态为 IM 旗舰版功能,[购买旗舰版套餐包](https://buy.cloud.tencent.com/avc?from=17491)后可使用,详见[价格说明](https://cloud.tencent.com/document/product/269/11673?from=17472#.E5.9F.BA.E7.A1.80.E6.9C.8D.E5.8A.A1.E8.AF.A6.E6.83.85)。
|
||||
*/
|
||||
virtual void GetUserStatus(const V2TIMStringVector &userIDList,
|
||||
V2TIMValueCallback<V2TIMUserStatusVector> *callback) = 0;
|
||||
|
||||
/**
|
||||
* 5.4 设置自己的状态,从 6.3 版本开始支持
|
||||
*
|
||||
* @param status 待设置的自定义状态
|
||||
*
|
||||
* @note 请注意,该接口只支持设置自己的自定义状态,即 V2TIMUserStatus.customStatus
|
||||
*/
|
||||
virtual void SetSelfStatus(const V2TIMUserStatus &status, V2TIMCallback *callback) = 0;
|
||||
|
||||
/**
|
||||
* 5.5 订阅用户状态,从 6.3 版本开始支持
|
||||
*
|
||||
* @param userIDList 待订阅的用户 ID
|
||||
*
|
||||
* @note 请注意
|
||||
* - 当成功订阅用户状态后,当对方的状态(包含在线状态、自定义状态)发生变更后,您可以监听 OnUserStatusChanged 回调来感知
|
||||
* - 如果您需要订阅好友列表的状态,您只需要在控制台上打开开关即可,无需调用该接口
|
||||
* - 该接口不支持订阅自己,您可以通过监听 OnUserStatusChanged 回调来感知自身的自定义状态的变更
|
||||
* - 订阅列表有个数限制,超过限制后,会自动淘汰最先订阅的用户
|
||||
* - 该功能为 IM 旗舰版功能,[购买旗舰版套餐包](https://buy.cloud.tencent.com/avc?from=17491)后可使用,详见[价格说明](https://cloud.tencent.com/document/product/269/11673?from=17472#.E5.9F.BA.E7.A1.80.E6.9C.8D.E5.8A.A1.E8.AF.A6.E6.83.85)。
|
||||
*/
|
||||
virtual void SubscribeUserStatus(const V2TIMStringVector &userIDList, V2TIMCallback *callback) = 0;
|
||||
|
||||
/**
|
||||
* 5.6 取消订阅用户状态,从 6.3 版本开始支持
|
||||
*
|
||||
* @note
|
||||
* - 当 userIDList 为空时,取消当前所有的订阅
|
||||
* - 该功能为 IM 旗舰版功能,[购买旗舰版套餐包](https://buy.cloud.tencent.com/avc?from=17491)后可使用,详见[价格说明](https://cloud.tencent.com/document/product/269/11673?from=17472#.E5.9F.BA.E7.A1.80.E6.9C.8D.E5.8A.A1.E8.AF.A6.E6.83.85)。
|
||||
*/
|
||||
virtual void UnsubscribeUserStatus(const V2TIMStringVector &userIDList, V2TIMCallback *callback) = 0;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 高级功能
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* ## 高级消息功能入口
|
||||
*
|
||||
* @return 高级消息管理类实例
|
||||
*/
|
||||
virtual V2TIMMessageManager *GetMessageManager() = 0;
|
||||
|
||||
/**
|
||||
* ## 高级群组功能入口
|
||||
*
|
||||
* @return 高级群组管理类实例
|
||||
*/
|
||||
virtual V2TIMGroupManager *GetGroupManager() = 0;
|
||||
|
||||
/**
|
||||
* ## 会话功能入口
|
||||
*
|
||||
* @return 会话管理类实例
|
||||
*/
|
||||
virtual V2TIMConversationManager *GetConversationManager() = 0;
|
||||
|
||||
/**
|
||||
* ## 关系链功能入口
|
||||
*
|
||||
* @return 关系链管理类实例
|
||||
*/
|
||||
virtual V2TIMFriendshipManager *GetFriendshipManager() = 0;
|
||||
|
||||
/**
|
||||
* ## 离线推送功能入口
|
||||
*
|
||||
* @return 离线推送功能类实例
|
||||
*/
|
||||
virtual V2TIMOfflinePushManager *GetOfflinePushManager() = 0;
|
||||
|
||||
/**
|
||||
* ## 信令功能入口
|
||||
*
|
||||
* @return 信令管理类实例
|
||||
*/
|
||||
virtual V2TIMSignalingManager *GetSignalingManager() = 0;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 扩展接口
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 实验性 API 接口
|
||||
*
|
||||
* @param api 接口名称
|
||||
* @param param 接口参数
|
||||
*
|
||||
* @note 该接口提供一些实验性功能
|
||||
*/
|
||||
virtual void CallExperimentalAPI(const V2TIMString &api, const void *param,
|
||||
V2TIMValueCallback<V2TIMBaseObject> *callback) = 0;
|
||||
};
|
||||
|
||||
#endif // __V2TIM_MANAGER_H__
|
||||
1046
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMMessage.h
generated
Executable file
1046
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMMessage.h
generated
Executable file
File diff suppressed because it is too large
Load Diff
494
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMMessageManager.h
generated
Executable file
494
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMMessageManager.h
generated
Executable file
@@ -0,0 +1,494 @@
|
||||
// Copyright (c) 2021 Tencent. All rights reserved.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 腾讯云通信服务 IMSDK
|
||||
//
|
||||
// 消息高级接口,里面包含了所有高级消息的创建、收发逻辑
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __V2TIM_MESSAGE_MANAGER_H__
|
||||
#define __V2TIM_MESSAGE_MANAGER_H__
|
||||
|
||||
#include "V2TIMCallback.h"
|
||||
#include "V2TIMDefine.h"
|
||||
#include "V2TIMListener.h"
|
||||
#include "V2TIMMessage.h"
|
||||
|
||||
class V2TIMMessageManager {
|
||||
public:
|
||||
virtual ~V2TIMMessageManager() {}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 监听 - 高级(图片、语音、视频等)消息
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 1.1 添加高级消息的事件监听器
|
||||
*/
|
||||
virtual void AddAdvancedMsgListener(V2TIMAdvancedMsgListener *listener) = 0;
|
||||
|
||||
/**
|
||||
* 1.2 移除高级消息监听器
|
||||
*/
|
||||
virtual void RemoveAdvancedMsgListener(V2TIMAdvancedMsgListener *listener) = 0;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 创建 - 高级(图片、语音、视频等)消息
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 2.1 创建文本消息
|
||||
*/
|
||||
virtual V2TIMMessage CreateTextMessage(const V2TIMString &text) = 0;
|
||||
|
||||
/**
|
||||
* 2.2 创建文本消息,并且可以附带 @ 提醒功能(该接口已弃用,推荐使用 CreateAtSignedGroupMessage 接口)
|
||||
*
|
||||
* 提醒消息仅适用于在群组中发送的消息
|
||||
*
|
||||
* @param atUserList 需要 @ 的用户列表,如果需要 @ALL,请传入 kImSDK_MesssageAtALL 常量字符串。
|
||||
* 举个例子,假设该条文本消息希望@提醒 denny 和 lucy 两个用户,同时又希望 @所有人,atUserList
|
||||
* 传 {"denny","lucy",kImSDK_MesssageAtALL}
|
||||
*
|
||||
* @note atUserList 使用注意事项
|
||||
* - 默认情况下,最多支持 @ 30个用户,超过限制后,消息会发送失败。
|
||||
* - atUserList 的总数不能超过默认最大数,包括 @ALL。
|
||||
* - 直播群(AVChatRoom)不支持发送 @ 消息。
|
||||
*/
|
||||
virtual V2TIMMessage CreateTextAtMessage(const V2TIMString &text,
|
||||
const V2TIMStringVector &atUserList) = 0;
|
||||
|
||||
/**
|
||||
* 2.3 创建自定义消息
|
||||
*/
|
||||
virtual V2TIMMessage CreateCustomMessage(const V2TIMBuffer &data) = 0;
|
||||
|
||||
/**
|
||||
* 2.4 创建自定义消息
|
||||
*
|
||||
* @param description 自定义消息描述信息,做离线Push时文本展示。
|
||||
* @param extension 离线 Push 时扩展字段信息。
|
||||
*/
|
||||
virtual V2TIMMessage CreateCustomMessage(const V2TIMBuffer &data,
|
||||
const V2TIMString &description,
|
||||
const V2TIMString &extension) = 0;
|
||||
|
||||
/**
|
||||
* 2.5 创建图片消息(图片最大支持 28 MB)
|
||||
*/
|
||||
virtual V2TIMMessage CreateImageMessage(const V2TIMString &imagePath) = 0;
|
||||
|
||||
/**
|
||||
* 2.6 创建语音消息(语音最大支持 28 MB)
|
||||
*
|
||||
* @param duration 语音时长,单位 s
|
||||
*/
|
||||
virtual V2TIMMessage CreateSoundMessage(const V2TIMString &soundPath, uint32_t duration) = 0;
|
||||
|
||||
/**
|
||||
* 2.7 创建视频消息(视频最大支持 100 MB)
|
||||
*
|
||||
* @param type 视频类型,如 mp4 mov 等
|
||||
* @param duration 视频时长,单位 s
|
||||
* @param snapshotPath 视频封面图片路径
|
||||
*/
|
||||
virtual V2TIMMessage CreateVideoMessage(const V2TIMString &videoFilePath,
|
||||
const V2TIMString &type, uint32_t duration,
|
||||
const V2TIMString &snapshotPath) = 0;
|
||||
|
||||
/**
|
||||
* 2.8 创建文件消息(文件最大支持 100 MB)
|
||||
*/
|
||||
virtual V2TIMMessage CreateFileMessage(const V2TIMString &filePath,
|
||||
const V2TIMString &fileName) = 0;
|
||||
|
||||
/**
|
||||
* 2.9 创建地理位置消息
|
||||
*/
|
||||
virtual V2TIMMessage CreateLocationMessage(const V2TIMString &desc, double longitude,
|
||||
double latitude) = 0;
|
||||
|
||||
/**
|
||||
* 2.10 创建表情消息
|
||||
*
|
||||
* SDK 并不提供表情包,如果开发者有表情包,可使用 index 存储表情在表情包中的索引,
|
||||
* 或者直接使用 data 存储表情二进制信息以及字符串 key,都由用户自定义,SDK 内部只做透传。
|
||||
*
|
||||
* @param index 表情索引
|
||||
* @param data 自定义数据
|
||||
*/
|
||||
virtual V2TIMMessage CreateFaceMessage(uint32_t index, const V2TIMBuffer &data) = 0;
|
||||
|
||||
/**
|
||||
* 2.11 创建合并消息(5.2.210 及以上版本支持)
|
||||
*
|
||||
* <p> 我们在收到一条合并消息的时候,通常会在聊天界面这样显示:
|
||||
* <p> |vinson 和 lynx 的聊天记录 | -- title (标题)
|
||||
* <p> |vinson:新版本 SDK 计划什么时候上线呢? | -- abstract1 (摘要信息1)
|
||||
* <p> |lynx:计划下周一,具体时间要看下这两天的系统测试情况..| -- abstract2 (摘要信息2)
|
||||
* <p> |vinson:好的. | -- abstract3 (摘要信息3)
|
||||
* <p> 聊天界面通常只会展示合并消息的标题和摘要信息,完整的转发消息列表,需要用户主动点击转发消息 UI 后再获取。
|
||||
*
|
||||
* <p> 多条被转发的消息可以被创建成一条合并消息 V2TIMMessage,然后调用 SendMessage 接口发送,实现步骤如下:
|
||||
* <p> 1. 调用 CreateMergerMessage 创建一条合并消息 V2TIMMessage。
|
||||
* <p> 2. 调用 SendMessage 发送转发消息 V2TIMMessage。
|
||||
*
|
||||
* <p> 收到合并消息解析步骤:
|
||||
* <p> 1. 通过 V2TIMMessage 获取 mergerElem。
|
||||
* <p> 2. 通过 mergerElem 获取 title 和 abstractList UI 展示。
|
||||
* <p> 3. 当用户点击摘要信息 UI 的时候,调用 DownloadMessageList 接口获取转发消息列表。
|
||||
*
|
||||
*
|
||||
* @param messageList 消息列表(最大支持 300 条,消息对象必须是 V2TIM_MSG_STATUS_SEND_SUCC 状态,消息类型不能为 V2TIMGroupTipsElem)
|
||||
* @param title 合并消息的来源,比如 "vinson 和 lynx 的聊天记录"、"xxx 群聊的聊天记录"。
|
||||
* @param abstractList 合并消息的摘要列表(最大支持 5 条摘要,每条摘要的最大长度不超过 100 个字符),不同的消息类型可以设置不同的摘要信息,比如:
|
||||
* 文本消息可以设置为:sender:text,图片消息可以设置为:sender:[图片],文件消息可以设置为:sender:[文件]。
|
||||
* @param compatibleText 合并消息兼容文本,低版本 SDK 如果不支持合并消息,默认会收到一条文本消息,文本消息的内容为 compatibleText,
|
||||
* 该参数不能为空字符串。
|
||||
*/
|
||||
virtual V2TIMMessage CreateMergerMessage(const V2TIMMessageVector &messageList,
|
||||
const V2TIMString &title,
|
||||
const V2TIMStringVector &abstractList,
|
||||
const V2TIMString &compatibleText) = 0;
|
||||
|
||||
/**
|
||||
* 2.12 创建转发消息(5.2.210 及以上版本支持)
|
||||
*
|
||||
* 如果需要转发一条消息,不能直接调用 SendMessage 接口发送原消息,需要先 CreateForwardMessage
|
||||
* 创建一条转发消息再发送。
|
||||
*
|
||||
* @param message 待转发的消息对象,消息状态必须为 V2TIM_MSG_STATUS_SEND_SUCC,消息类型不能为
|
||||
* V2TIMGroupTipsElem。
|
||||
* @return 转发消息对象,elem 内容和原消息完全一致。
|
||||
*/
|
||||
virtual V2TIMMessage CreateForwardMessage(const V2TIMMessage &message) = 0;
|
||||
|
||||
/**
|
||||
* 2.13 创建定向群消息(6.0 及以上版本支持)
|
||||
*
|
||||
* 如果您需要在群内给指定群成员列表发消息,可以创建一条定向群消息,定向群消息只有指定群成员才能收到。
|
||||
*
|
||||
* @param message 原始消息对象
|
||||
* @param receiverList 消息接收者列表
|
||||
* @return 定向群消息对象
|
||||
*
|
||||
* @note 请注意:
|
||||
* - 原始消息对象不支持群 @ 消息。
|
||||
* - 消息接收者列表最大支持 50 个。
|
||||
* - 社群(Community)和直播群(AVChatRoom)不支持发送定向群消息。
|
||||
* - 定向群消息默认不计入群会话的未读计数。
|
||||
*/
|
||||
virtual V2TIMMessage CreateTargetedGroupMessage(const V2TIMMessage &message, const V2TIMStringVector &receiverList) = 0;
|
||||
|
||||
/**
|
||||
* 2.14 创建带 @ 标记的群消息(7.0 及以上版本支持)
|
||||
*
|
||||
* 如果您需要发送的群消息附带 @ 提醒功能,可以创建一条带 @ 标记的群消息。
|
||||
*
|
||||
* @param message 原始消息对象
|
||||
* @param atUserList 需要 @ 的用户列表,如果需要 @ALL,请传入 kImSDK_MesssageAtALL 常量字符串。
|
||||
* 举个例子,假设该条消息希望@提醒 denny 和 lucy 两个用户,同时又希望@所有人,atUserList 传 @[@"denny",@"lucy",kImSDK_MesssageAtALL]
|
||||
* @return 群 @ 消息对象
|
||||
*
|
||||
* @note atUserList 使用注意事项
|
||||
* - 默认情况下,最多支持 @ 30个用户,超过限制后,消息会发送失败。
|
||||
* - atUserList 的总数不能超过默认最大数,包括 @ALL。
|
||||
* - 直播群(AVChatRoom)不支持发送 @ 消息。
|
||||
*/
|
||||
virtual V2TIMMessage CreateAtSignedGroupMessage(const V2TIMMessage &message, const V2TIMStringVector &atUserList) = 0;
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 发送 - 高级(图片、语音、视频等)消息
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 3.1 发送高级消息(高级版本:可以指定优先级,推送信息等特性)
|
||||
*
|
||||
* @param message 待发送的消息对象,需要通过对应的 CreateXXXMessage 接口进行创建。
|
||||
* @param receiver 消息接收者的 userID, 如果是发送 C2C 单聊消息,只需要指定 receiver
|
||||
* 即可。
|
||||
* @param groupID 目标群组 ID,如果是发送群聊消息,只需要指定 groupID 即可。
|
||||
* @param priority
|
||||
* 消息优先级,仅针对群聊消息有效。请把重要消息设置为高优先级(比如红包、礼物消息),高频且不重要的消息设置为低优先级(比如点赞消息)。
|
||||
* @param onlineUserOnly 是否只有在线用户才能收到,如果设置为 true
|
||||
* ,接收方历史消息拉取不到,常被用于实现“对方正在输入”或群组里的非重要提示等弱提示功能,该字段不支持
|
||||
* AVChatRoom。
|
||||
* @param offlinePushInfo 离线推送时携带的标题和内容。
|
||||
* @return 消息唯一标识
|
||||
* @note
|
||||
* - 设置 offlinePushInfo 字段,需要先在 V2TIMOfflinePushManager
|
||||
* 开启推送,推送开启后,除了自定义消息,其他消息默认都会推送。
|
||||
* - 如果自定义消息也需要推送,请设置 offlinePushInfo 的 desc
|
||||
* 字段,设置成功后,推送的时候会默认展示 desc 信息。
|
||||
* - AVChatRoom 群聊不支持 onlineUserOnly 字段,如果是 AVChatRoom 请将该字段设置为 false。
|
||||
* - 如果设置 onlineUserOnly 为 true 时,该消息为在线消息且不会被计入未读计数。
|
||||
*/
|
||||
virtual V2TIMString SendMessage(V2TIMMessage &message, const V2TIMString &receiver,
|
||||
const V2TIMString &groupID, V2TIMMessagePriority priority,
|
||||
bool onlineUserOnly,
|
||||
const V2TIMOfflinePushInfo &offlinePushInfo,
|
||||
V2TIMSendCallback *callback) = 0;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 接收 - 设置消息的接口选项(接收|接收但不提醒|不接收)
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 4.1 设置针对某个用户的 C2C 消息接收选项(支持批量设置)
|
||||
* <p>5.3.425 及以上版本支持
|
||||
*
|
||||
* @note 请注意:
|
||||
* - 该接口支持批量设置,您可以通过参数 userIDList 设置一批用户,但一次最大允许设置 30 个用户。
|
||||
* - 该接口调用频率被限制为1秒内最多调用5次。
|
||||
*
|
||||
*
|
||||
* @param opt 三种类型的消息接收选项:
|
||||
* V2TIMMessage.V2TIM_RECEIVE_MESSAGE:在线正常接收消息,离线时会有厂商的离线推送通知
|
||||
* V2TIMMessage.V2TIM_NOT_RECEIVE_MESSAGE:不会接收到消息
|
||||
* V2TIMMessage.V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE:在线正常接收消息,离线不会有推送通知
|
||||
*
|
||||
*/
|
||||
virtual void SetC2CReceiveMessageOpt(const V2TIMStringVector &userIDList,
|
||||
V2TIMReceiveMessageOpt opt, V2TIMCallback *callback) = 0;
|
||||
|
||||
/**
|
||||
* 4.2 查询针对某个用户的 C2C 消息接收选项
|
||||
* <p>5.3.425 及以上版本支持
|
||||
*/
|
||||
virtual void GetC2CReceiveMessageOpt(
|
||||
const V2TIMStringVector &userIDList,
|
||||
V2TIMValueCallback<V2TIMReceiveMessageOptInfoVector> *callback) = 0;
|
||||
|
||||
/**
|
||||
* 4.3 设置群消息的接收选项
|
||||
*
|
||||
* @param opt 三种类型的消息接收选项:
|
||||
* V2TIMMessage.V2TIM_RECEIVE_MESSAGE:在线正常接收消息,离线时会有厂商的离线推送通知
|
||||
* V2TIMMessage.V2TIM_NOT_RECEIVE_MESSAGE:不会接收到群消息
|
||||
* V2TIMMessage.V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE:在线正常接收消息,离线不会有推送通知
|
||||
*/
|
||||
virtual void SetGroupReceiveMessageOpt(const V2TIMString &groupID, V2TIMReceiveMessageOpt opt,
|
||||
V2TIMCallback *callback) = 0;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 获取历史消息、撤回、删除、标记已读等高级接口
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/**
|
||||
* 5.1 获取历史消息高级接口
|
||||
*
|
||||
* @param option 拉取消息选项设置,可以设置从云端、本地拉取更老或更新的消息
|
||||
*
|
||||
* @note 请注意:
|
||||
* - 如果设置为拉取云端消息,当 SDK 检测到没有网络,默认会直接返回本地数据
|
||||
* -
|
||||
* 只有会议群(Meeting)才能拉取到进群前的历史消息,直播群(AVChatRoom)消息不存漫游和本地数据库,调用这个接口无效
|
||||
*/
|
||||
virtual void GetHistoryMessageList(const V2TIMMessageListGetOption &option,
|
||||
V2TIMValueCallback<V2TIMMessageVector> *callback) = 0;
|
||||
|
||||
/**
|
||||
* 5.2 撤回消息
|
||||
*
|
||||
* @note 请注意:
|
||||
* - 撤回消息的时间限制默认 2 minutes,超过 2 minutes 的消息不能撤回,您也可以在 [控制台](https://console.cloud.tencent.com/im)(功能配置 -> 登录与消息 ->
|
||||
* 消息撤回设置)自定义撤回时间限制。
|
||||
* - 仅支持单聊和群组中发送的普通消息,无法撤销 onlineUserOnly 为 true 即仅在线用户才能收到的消息,也无法撤销直播群(AVChatRoom)中的消息。
|
||||
* - 如果发送方撤回消息,已经收到消息的一方会收到 V2TIMAdvancedMsgListener::OnRecvMessageRevoked 回调。
|
||||
*/
|
||||
virtual void RevokeMessage(const V2TIMMessage &message, V2TIMCallback *callback) = 0;
|
||||
|
||||
/**
|
||||
* 5.3 消息变更
|
||||
*
|
||||
* @note 请注意:
|
||||
* - 如果消息修改成功,自己和对端用户(C2C)或群组成员(Group)都会收到 OnRecvMessageModified 回调。
|
||||
* - 如果在修改消息过程中,消息已经被其他人修改,callback 会返回 ERR_SDK_MSG_MODIFY_CONFLICT 错误。
|
||||
* - 消息无论修改成功或则失败,callback 都会返回最新的消息对象。
|
||||
*/
|
||||
virtual void ModifyMessage(const V2TIMMessage &message, V2TIMCompleteCallback<V2TIMMessage> *callback) = 0;
|
||||
|
||||
/**
|
||||
* 5.4 删除本地及云端的消息
|
||||
*
|
||||
* @note 该接口删除本地及云端的消息,且无法恢复。需要注意的是:
|
||||
* - 一次最多只能删除 30 条消息
|
||||
* - 要删除的消息必须属于同一会话
|
||||
* - 一秒钟最多只能调用一次该接口
|
||||
* -
|
||||
* 如果该账号在其他设备上拉取过这些消息,那么调用该接口删除后,这些消息仍然会保存在那些设备上,即删除消息不支持多端同步。
|
||||
*/
|
||||
virtual void DeleteMessages(const V2TIMMessageVector &messages, V2TIMCallback *callback) = 0;
|
||||
|
||||
/**
|
||||
* 5.5 清空单聊本地及云端的消息(不删除会话)
|
||||
* <p> 5.4.666 及以上版本支持
|
||||
*
|
||||
* @note 请注意:
|
||||
* - 会话内的消息在本地删除的同时,在服务器也会同步删除。
|
||||
*
|
||||
*/
|
||||
virtual void ClearC2CHistoryMessage(const V2TIMString &userID, V2TIMCallback *callback) = 0;
|
||||
|
||||
/**
|
||||
* 5.6 清空群聊本地及云端的消息(不删除会话)
|
||||
* <p> 5.4.666 及以上版本支持
|
||||
*
|
||||
* @note 请注意:
|
||||
* - 会话内的消息在本地删除的同时,在服务器也会同步删除。
|
||||
*/
|
||||
virtual void ClearGroupHistoryMessage(const V2TIMString &groupID, V2TIMCallback *callback) = 0;
|
||||
|
||||
/**
|
||||
* 5.7 向群组消息列表中添加一条消息
|
||||
*
|
||||
* 该接口主要用于满足向群组聊天会话中插入一些提示性消息的需求,比如“您已经退出该群”,这类消息有展示
|
||||
* 在聊天消息区的需求,但并没有发送给其他人的必要。
|
||||
* 所以 InsertGroupMessageToLocalStorage() 相当于一个被禁用了网络发送能力的 SendMessage() 接口。
|
||||
*
|
||||
* @return msgID 消息唯一标识
|
||||
*
|
||||
* @note 通过该接口 save 的消息只存本地,程序卸载后会丢失。
|
||||
*/
|
||||
virtual V2TIMString InsertGroupMessageToLocalStorage(
|
||||
V2TIMMessage &message, const V2TIMString &groupID, const V2TIMString &sender,
|
||||
V2TIMValueCallback<V2TIMMessage> *callback) = 0;
|
||||
|
||||
/**
|
||||
* 5.8 向C2C消息列表中添加一条消息
|
||||
*
|
||||
* 该接口主要用于满足向C2C聊天会话中插入一些提示性消息的需求,比如“您已成功发送消息”,这类消息有展示
|
||||
* 在聊天消息去的需求,但并没有发送给对方的必要。
|
||||
* 所以 InsertC2CMessageToLocalStorage()相当于一个被禁用了网络发送能力的 SendMessage() 接口。
|
||||
*
|
||||
* @return msgID 消息唯一表示
|
||||
* @note 通过该接口 save 的消息只存本地,程序卸载后会丢失。
|
||||
*/
|
||||
virtual V2TIMString InsertC2CMessageToLocalStorage(
|
||||
V2TIMMessage &message, const V2TIMString &userID, const V2TIMString &sender,
|
||||
V2TIMValueCallback<V2TIMMessage> *callback) = 0;
|
||||
|
||||
/**
|
||||
* 5.9 根据 messageID 查询指定会话中的本地消息
|
||||
* @param messageIDList 消息 ID 列表
|
||||
*/
|
||||
virtual void FindMessages(const V2TIMStringVector &messageIDList,
|
||||
V2TIMValueCallback<V2TIMMessageVector> *callback) = 0;
|
||||
|
||||
/**
|
||||
* 5.10 搜索本地消息(5.4.666 及以上版本支持,需要您购买旗舰版套餐)
|
||||
* @param searchParam 消息搜索参数,详见 V2TIMMessageSearchParam 的定义
|
||||
* @note 该功能为 IM 旗舰版功能,[购买旗舰版套餐包](https://buy.cloud.tencent.com/avc?from=17474)后可使用,详见[价格说明](https://cloud.tencent.com/document/product/269/11673?from=17176#.E5.9F.BA.E7.A1.80.E6.9C.8D.E5.8A.A1.E8.AF.A6.E6.83.85)
|
||||
*/
|
||||
virtual void SearchLocalMessages(const V2TIMMessageSearchParam &searchParam,
|
||||
V2TIMValueCallback<V2TIMMessageSearchResult> *callback) = 0;
|
||||
|
||||
/**
|
||||
* 5.11 发送消息已读回执(6.1 及其以上版本支持)
|
||||
*
|
||||
* @note 请注意:
|
||||
* - 该功能为旗舰版功能,[购买旗舰版套餐包](https://buy.cloud.tencent.com/avc?from=17485)后可使用,详见[价格说明](https://cloud.tencent.com/document/product/269/11673?from=17221#.E5.9F.BA.E7.A1.80.E6.9C.8D.E5.8A.A1.E8.AF.A6.E6.83.85)。
|
||||
* - 向群消息发送已读回执,需要您先到控制台打开对应的开关,详情参考文档 [群消息已读回执](https://cloud.tencent.com/document/product/269/75343#.E8.AE.BE.E7.BD.AE.E6.94.AF.E6.8C.81.E5.B7.B2.E8.AF.BB.E5.9B.9E.E6.89.A7.E7.9A.84.E7.BE.A4.E7.B1.BB.E5.9E.8B) 。
|
||||
* - messageList 里的消息必须在同一个会话中。
|
||||
* - 该接口调用成功后,会话未读数不会变化,消息发送者会收到 onRecvMessageReadReceipts 回调,回调里面会携带消息的最新已读信息。
|
||||
*/
|
||||
virtual void SendMessageReadReceipts(const V2TIMMessageVector &messageList, V2TIMCallback *callback) = 0;
|
||||
|
||||
/**
|
||||
* 5.12 获取消息已读回执(6.1 及其以上版本支持)
|
||||
* @param messageList 消息列表
|
||||
*
|
||||
* @note 请注意:
|
||||
* - 该功能为旗舰版功能,[购买旗舰版套餐包](https://buy.cloud.tencent.com/avc?from=17485)后可使用,详见[价格说明](https://cloud.tencent.com/document/product/269/11673?from=17221#.E5.9F.BA.E7.A1.80.E6.9C.8D.E5.8A.A1.E8.AF.A6.E6.83.85)。
|
||||
* - 获取群消息已读回执,需要您先到控制台打开对应的开关,详情参考文档 [群消息已读回执](https://cloud.tencent.com/document/product/269/75343#.E8.AE.BE.E7.BD.AE.E6.94.AF.E6.8C.81.E5.B7.B2.E8.AF.BB.E5.9B.9E.E6.89.A7.E7.9A.84.E7.BE.A4.E7.B1.BB.E5.9E.8B) 。
|
||||
* - messageList 里的消息必须在同一个会话中。
|
||||
*/
|
||||
virtual void GetMessageReadReceipts(const V2TIMMessageVector &messageList, V2TIMValueCallback<V2TIMMessageReceiptVector> *callback) = 0;
|
||||
|
||||
/**
|
||||
* 5.13 获取群消息已读群成员列表(6.1 及其以上版本支持)
|
||||
* @param message 群消息
|
||||
* @param filter 指定拉取已读或未读群成员列表。
|
||||
* @param nextSeq 分页拉取的游标,第一次默认取传 0,后续分页拉取时,传上一次分页拉取成功回调里的 nextSeq。
|
||||
* @param count 分页拉取的个数,最多支持 100 个。
|
||||
*
|
||||
* @note 请注意:
|
||||
* - 该功能为旗舰版功能,[购买旗舰版套餐包](https://buy.cloud.tencent.com/avc?from=17485)后可使用,详见[价格说明](https://cloud.tencent.com/document/product/269/11673?from=17221#.E5.9F.BA.E7.A1.80.E6.9C.8D.E5.8A.A1.E8.AF.A6.E6.83.85)。
|
||||
* - 使用该功能之前,请您先到控制台打开对应的开关,详情参考文档 [群消息已读回执](https://cloud.tencent.com/document/product/269/75343#.E8.AE.BE.E7.BD.AE.E6.94.AF.E6.8C.81.E5.B7.B2.E8.AF.BB.E5.9B.9E.E6.89.A7.E7.9A.84.E7.BE.A4.E7.B1.BB.E5.9E.8B) 。
|
||||
*/
|
||||
virtual void GetGroupMessageReadMemberList(const V2TIMMessage &message, V2TIMGroupMessageReadMembersFilter filter, uint64_t nextSeq, uint32_t count, V2TIMValueCallback<V2TIMGroupMessageReadMemberList> *callback) = 0;
|
||||
|
||||
/**
|
||||
* 5.14 设置消息扩展(6.7 及其以上版本支持,需要您购买旗舰版套餐)
|
||||
* @param message 消息对象,消息需满足三个条件:1、消息发送前需设置 supportMessageExtension 为 true,2、消息必须是发送成功的状态,3、消息不能是社群(Community)和直播群(AVChatRoom)消息。
|
||||
* @param extensions 扩展信息,如果扩展 key 已经存在,则修改扩展的 value 信息,如果扩展 key 不存在,则新增扩展。
|
||||
*
|
||||
* @note
|
||||
* - 扩展 key 最大支持 100 字节,扩展 value 最大支持 1KB,单次最多支持设置 20 个扩展,单条消息最多可设置 300 个扩展。
|
||||
* - 当多个用户同时设置或删除同一个扩展 key 时,只有第一个用户可以执行成功,其它用户会收到 23001 错误码和最新的扩展信息,在收到错误码和扩展信息后,请按需重新发起设置操作。
|
||||
* - 我们强烈建议不同的用户设置不同的扩展 key,这样大部分场景都不会冲突,比如投票、接龙、问卷调查,都可以把自己的 userID 作为扩展 key。
|
||||
*/
|
||||
virtual void SetMessageExtensions(const V2TIMMessage &message, const V2TIMMessageExtensionVector &extensions, V2TIMValueCallback<V2TIMMessageExtensionResultVector> *callback) = 0;
|
||||
|
||||
/**
|
||||
* 5.15 获取消息扩展(6.7 及其以上版本支持,需要您购买旗舰版套餐)
|
||||
*/
|
||||
virtual void GetMessageExtensions(const V2TIMMessage &message, V2TIMValueCallback<V2TIMMessageExtensionVector> *callback) = 0;
|
||||
|
||||
/**
|
||||
* 5.16 删除消息扩展(6.7 及其以上版本支持,需要您购买旗舰版套餐)
|
||||
* @param keys 消息扩展 key 列表, 单次最大支持删除 20 个消息扩展,如果设置为 nil ,表示删除所有消息扩展
|
||||
*
|
||||
* @note
|
||||
* - 当多个用户同时设置或删除同一个扩展 key 时,只有第一个用户可以执行成功,其它用户会收到 23001 错误码和最新的扩展信息,在收到错误码和扩展信息后,请按需重新发起删除操作。
|
||||
*/
|
||||
virtual void DeleteMessageExtensions(const V2TIMMessage &message, const V2TIMStringVector &keys, V2TIMValueCallback<V2TIMMessageExtensionResultVector> *callback) = 0;
|
||||
|
||||
/**
|
||||
* 5.17 翻译文本消息
|
||||
*
|
||||
* @param sourceTextList 待翻译文本数组。
|
||||
* @param sourceLanguage 源语言。可以设置为特定语言或 ”auto“。“auto“ 表示自动识别源语言。传空默认为 ”auto“。
|
||||
* @param targetLanguage 目标语言。支持的目标语言有多种,例如:英语-“en“,简体中文-”zh“,法语-”fr“,德语-”de“等。详情请参考文档:[文本翻译语言支持](https://cloud.tencent.com/document/product/269/85380#.E6.96.87.E6.9C.AC.E7.BF.BB.E8.AF.91.E8.AF.AD.E8.A8.80.E6.94.AF.E6.8C.81)。
|
||||
* @param callback 翻译结果回调。其中 result 的 key 为待翻译文本, value 为翻译后文本。
|
||||
*/
|
||||
virtual void TranslateText(const V2TIMStringVector &sourceTextList,
|
||||
const V2TIMString &sourceLanguage, const V2TIMString &targetLanguage,
|
||||
V2TIMValueCallback<V2TIMStringToV2TIMStringMap> *callback) = 0;
|
||||
|
||||
/**
|
||||
* 5.18 标记单聊会话已读(待废弃接口,请使用 CleanConversationUnreadMessageCount 接口)
|
||||
* @note 请注意:
|
||||
* - 该接口调用成功后,自己的未读数会清 0,对端用户会收到 OnRecvC2CReadReceipt 回调,回调里面会携带标记会话已读的时间。
|
||||
* - 从 5.8 版本开始,当 userID 为 nil 时,标记所有单聊会话为已读状态。
|
||||
*/
|
||||
virtual void MarkC2CMessageAsRead(const V2TIMString &userID, V2TIMCallback *callback) = 0;
|
||||
|
||||
/**
|
||||
* 5.19 标记群组会话已读(待废弃接口,请使用 CleanConversationUnreadMessageCount 接口)
|
||||
* @note 请注意:
|
||||
* - 该接口调用成功后,自己的未读数会清 0。
|
||||
* - 从 5.8 版本开始,当 groupID 为 nil 时,标记所有群组会话为已读状态。
|
||||
*/
|
||||
virtual void MarkGroupMessageAsRead(const V2TIMString &groupID, V2TIMCallback *callback) = 0;
|
||||
|
||||
/**
|
||||
* 5.20 标记所有会话为已读(待废弃接口,请使用 CleanConversationUnreadMessageCount 接口)
|
||||
*/
|
||||
virtual void MarkAllMessageAsRead(V2TIMCallback *callback) = 0;
|
||||
};
|
||||
|
||||
#endif // __V2TIM_MESSAGE_MANAGER_H__
|
||||
50
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMOfflinePushManager.h
generated
Executable file
50
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMOfflinePushManager.h
generated
Executable file
@@ -0,0 +1,50 @@
|
||||
// Copyright (c) 2022 Tencent. All rights reserved.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 腾讯云通信服务 IMSDK
|
||||
//
|
||||
// 离线推送的接口
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __V2TIM_OFFLINE_PUSH_MANAGER_H__
|
||||
#define __V2TIM_OFFLINE_PUSH_MANAGER_H__
|
||||
|
||||
#include "V2TIMCallback.h"
|
||||
#include "V2TIMMessage.h"
|
||||
|
||||
class V2TIMOfflinePushManager {
|
||||
public:
|
||||
virtual ~V2TIMOfflinePushManager () {}
|
||||
|
||||
/**
|
||||
* 设置离线推送配置信息
|
||||
* note
|
||||
* - 如果您想关闭离线推送,请把 config 设置为 V2TIMOfflinePushConfig()
|
||||
* @param config 离线推送配置
|
||||
* @param callback 回调
|
||||
*/
|
||||
virtual void SetOfflinePushConfig(const V2TIMOfflinePushConfig &config, V2TIMCallback *callback) = 0;
|
||||
|
||||
/**
|
||||
* APP 检测到应用退后台时可以调用此接口,可以用作桌面应用角标的初始化未读数量。
|
||||
*
|
||||
* - 从 6.1 版本开始,如果配置了离线推送,会收到厂商或 TPNS 的离线推送通道下发的通知栏消息。
|
||||
*
|
||||
* @param unreadCount 未读数量
|
||||
* @param callback 回调
|
||||
*/
|
||||
virtual void DoBackground(uint32_t unreadCount, V2TIMCallback *callback) = 0;
|
||||
|
||||
/**
|
||||
* APP 检测到应用进前台时可以调用此接口
|
||||
*
|
||||
* - 从 6.1 版本开始,调用 DoForeground,会停止离线推送。但如果应用被 kill,仍然可以正常接收离线推送。
|
||||
*
|
||||
* @param callback 回调
|
||||
*/
|
||||
virtual void DoForeground(V2TIMCallback *callback) = 0;
|
||||
};
|
||||
|
||||
#endif // __V2TIM_OFFLINE_PUSH_MANAGER_H__
|
||||
57
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMSignaling.h
generated
Executable file
57
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMSignaling.h
generated
Executable file
@@ -0,0 +1,57 @@
|
||||
// Copyright (c) 2021 Tencent. All rights reserved.
|
||||
|
||||
#ifndef __V2TIM_SIGNALING_H__
|
||||
#define __V2TIM_SIGNALING_H__
|
||||
|
||||
#include "V2TIMCommon.h"
|
||||
#include "V2TIMDefine.h"
|
||||
#include "V2TIMMessage.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// (一)枚举值定义
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// 操作类型
|
||||
enum V2TIMSignalingActionType {
|
||||
// 邀请方发起邀请
|
||||
SignalingActionType_Invite = 1,
|
||||
// 邀请方取消邀请
|
||||
SignalingActionType_Cancel_Invite = 2,
|
||||
// 被邀请方接受邀请
|
||||
SignalingActionType_Accept_Invite = 3,
|
||||
// 被邀请方拒绝邀请
|
||||
SignalingActionType_Reject_Invite = 4,
|
||||
// 邀请超时
|
||||
SignalingActionType_Invite_Timeout = 5,
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// (二)结构体定义
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
struct TIM_API V2TIMSignalingInfo {
|
||||
// 信令ID
|
||||
V2TIMString inviteID;
|
||||
// 如果是群组信令,groupID 为会话群组ID,否则为空
|
||||
V2TIMString groupID;
|
||||
// 邀请方的ID
|
||||
V2TIMString inviter;
|
||||
// 被邀请方列表
|
||||
V2TIMStringVector inviteeList;
|
||||
// 信令内容
|
||||
V2TIMString data;
|
||||
// 信令操作类型
|
||||
V2TIMSignalingActionType actionType;
|
||||
// 信令超时时间
|
||||
int timeout;
|
||||
|
||||
V2TIMSignalingInfo();
|
||||
V2TIMSignalingInfo(const V2TIMSignalingInfo& signalingInfo);
|
||||
~V2TIMSignalingInfo();
|
||||
};
|
||||
|
||||
#endif /* __V2TIM_SIGNALING_H__ */
|
||||
142
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMSignalingManager.h
generated
Executable file
142
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMSignalingManager.h
generated
Executable file
@@ -0,0 +1,142 @@
|
||||
// Copyright (c) 2021 Tencent. All rights reserved.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 腾讯云通信服务 IMSDK
|
||||
//
|
||||
// 消息高级接口,里面包含了所有高级消息的创建、收发逻辑
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __V2TIM_SIGNALING_MANAGER_H__
|
||||
#define __V2TIM_SIGNALING_MANAGER_H__
|
||||
|
||||
#include "V2TIMCallback.h"
|
||||
#include "V2TIMDefine.h"
|
||||
#include "V2TIMListener.h"
|
||||
#include "V2TIMSignaling.h"
|
||||
|
||||
class TIM_API V2TIMSignalingManager {
|
||||
public:
|
||||
virtual ~V2TIMSignalingManager() {}
|
||||
|
||||
/**
|
||||
* 添加信令监听
|
||||
*/
|
||||
virtual void AddSignalingListener(V2TIMSignalingListener* listener) = 0;
|
||||
|
||||
/**
|
||||
* 移除信令监听
|
||||
*/
|
||||
virtual void RemoveSignalingListener(V2TIMSignalingListener* listener) = 0;
|
||||
|
||||
/**
|
||||
* 邀请某个人
|
||||
*
|
||||
* @param invitee 被邀请人用户 ID
|
||||
* @param data 自定义数据
|
||||
* @param onlineUserOnly 是否只有在线用户才能收到邀请,如果设置为 true,只有在线用户才能收到,
|
||||
* 并且 Invite 操作也不会产生历史消息(针对该次 Invite 的后续
|
||||
* Cancel、Accept、Reject、Timeout 操作也同样不会产生历史消息)。
|
||||
* @param offlinePushInfo 离线推送信息,其中 desc 为必填字段,推送的时候会默认展示 desc 信息。
|
||||
* @param timeout 超时时间,单位秒,如果设置为 0,SDK 不会做超时检测,也不会触发
|
||||
* onInvitationTimeout 回调
|
||||
* @return inviteID 邀请 ID,如果邀请失败,返回空字符串
|
||||
*/
|
||||
virtual V2TIMString Invite(const V2TIMString& invitee, const V2TIMString& data,
|
||||
bool onlineUserOnly,
|
||||
const V2TIMOfflinePushInfo& offlinePushInfo, int timeout,
|
||||
V2TIMCallback* callback) = 0;
|
||||
|
||||
/**
|
||||
* 邀请群内的某些人
|
||||
*
|
||||
* @param groupID 发起邀请所在群组
|
||||
* @param inviteeList 被邀请人列表,inviteeList 必须已经在 groupID 群里,否则邀请无效
|
||||
* @param onlineUserOnly 是否只有在线用户才能收到邀请,如果设置为 true,只有在线用户才能收到,
|
||||
* 并且 Invite 操作也不会产生历史消息(针对该次 Invite 的后续
|
||||
* Cancel、Accept、Reject、Timeout 操作也同样不会产生历史消息)。
|
||||
* @param timeout 超时时间,单位秒,如果设置为 0,SDK 不会做超时检测,也不会触发
|
||||
* onInvitationTimeout 回调
|
||||
* @return inviteID 邀请 ID,如果邀请失败,返回空字符串
|
||||
*
|
||||
* @note
|
||||
* 群邀请暂不支持离线推送,如果您需要离线推送,可以针对被邀请的用户单独发离线推送自定义消息,
|
||||
* 详细代码请参考 TRTCAVCallImpl -> sendOnlineMessageWithOfflinePushInfo 函数。
|
||||
*/
|
||||
virtual V2TIMString InviteInGroup(const V2TIMString& groupID,
|
||||
const V2TIMStringVector& inviteeList, const V2TIMString& data,
|
||||
bool onlineUserOnly, int timeout,
|
||||
V2TIMCallback* callback) = 0;
|
||||
|
||||
/**
|
||||
* 邀请方取消邀请
|
||||
*
|
||||
* @param inviteID 邀请 ID
|
||||
*
|
||||
* @note 如果所有被邀请人都已经处理了当前邀请(包含超时),不能再取消当前邀请。
|
||||
*/
|
||||
virtual void Cancel(const V2TIMString& inviteID, const V2TIMString& data,
|
||||
V2TIMCallback* callback) = 0;
|
||||
|
||||
/**
|
||||
* 接收方接收邀请
|
||||
*
|
||||
* @note 不能接受不是针对自己的邀请,请在收到 OnReceiveNewInvitation 回调的时候先判断
|
||||
* inviteeList 有没有自己,如果没有自己,不能 Accept 邀请。
|
||||
*/
|
||||
virtual void Accept(const V2TIMString& inviteID, const V2TIMString& data,
|
||||
V2TIMCallback* callback) = 0;
|
||||
|
||||
/**
|
||||
* 接收方拒绝邀请
|
||||
*
|
||||
* @note 不能拒绝不是针对自己的邀请,请在收到 OnReceiveNewInvitation 回调的时候先判断
|
||||
* inviteeList 有没有自己,如果没有自己,不能 Reject 邀请。
|
||||
*/
|
||||
virtual void Reject(const V2TIMString& inviteID, const V2TIMString& data,
|
||||
V2TIMCallback* callback) = 0;
|
||||
|
||||
/**
|
||||
* 获取信令信息
|
||||
*
|
||||
* 如果 Invite 设置 onlineUserOnly 为 false,每次信令操作(包括
|
||||
* Invite、Cancel、Accept、Reject、Timeout)都会产生一条自定义消息, 该消息会通过
|
||||
* V2TIMAdvancedMsgListener -> onRecvNewMessage
|
||||
* 抛给用户,用户也可以通过历史消息拉取,如果需要根据信令信息做自定义化文本展示,可以调用下面接口获取信令信息。
|
||||
*
|
||||
* @param msg 消息对象
|
||||
* @return V2TIMSignalingInfo 信令信息,如果 V2TIMSignalingInfo::inviteID 为空字符串,则 msg 不是一条信令消息。
|
||||
*/
|
||||
virtual V2TIMSignalingInfo GetSignalingInfo(const V2TIMMessage& msg) = 0;
|
||||
|
||||
/**
|
||||
* 添加邀请信令
|
||||
*
|
||||
* 主要用于邀请者在被邀请者离线期间,发送了群聊邀请,被邀请者上线后将该信令同步给 SDK,从而正常使用信令功能。
|
||||
*
|
||||
* 当被邀请者点击离线推送提示,拉起 App 时:
|
||||
* 1. 如果被邀请者离线期间,邀请者发送的是 1V1 信令,SDK 可以自动同步邀请信令。邀请未超时,回调 onReceiveNewInvitation。
|
||||
*
|
||||
* 2. 如果被邀请者离线期间,邀请者发送的是群聊信令,不同 SDK 版本表现如下:
|
||||
* - 6.7 以前的版本:
|
||||
* SDK 无法自动同步邀请信令(信令本质上就是一条自定义消息,群离线消息在程序启动后无法自动同步)。
|
||||
* 如果被邀请者需要处理该邀请信令,可以让邀请者在发起信令时,向每个被邀请者额外发送一条 C2C 离线推送消息,消息携带 V2TIMSignalingInfo 信息。
|
||||
* 被邀请者收到离线推送时通过 addInvitedSignaling 将 V2TIMSignalingInfo 信息告知 SDK。
|
||||
* - 6.7 及以后的版本:
|
||||
* SDK 会自动同步最近 30 秒的消息。如果其中包含了未超时的邀请信令,回调 onReceiveNewInvitation。您无需再调用本接口同步邀请信令。
|
||||
*
|
||||
* @note 如果添加的信令信息已存在,fail callback 会抛 ERR_SDK_SIGNALING_ALREADY_EXISTS 错误码。
|
||||
*/
|
||||
virtual void AddInvitedSignaling(const V2TIMSignalingInfo& info, V2TIMCallback* callback) = 0;
|
||||
|
||||
/**
|
||||
* 修改邀请信令(6.7 及其以上版本支持)
|
||||
*
|
||||
* @note 仅支持修改邀请信令的自定义字段 data。只有在线用户才能收到的邀请信令不能被修改。
|
||||
*/
|
||||
virtual void ModifyInvitation(const V2TIMString& inviteID, const V2TIMString& data,
|
||||
V2TIMCallback* callback) = 0;
|
||||
};
|
||||
|
||||
#endif // __V2TIM_SIGNALING_MANAGER_H__
|
||||
48
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMString.h
generated
Executable file
48
Pods/TXIMSDK_Plus_iOS/ImSDK_Plus.framework/cpluscplus/include/V2TIMString.h
generated
Executable file
@@ -0,0 +1,48 @@
|
||||
// Copyright (c) 2021 Tencent. All rights reserved.
|
||||
|
||||
#ifndef __V2TIM_STRING_H__
|
||||
#define __V2TIM_STRING_H__
|
||||
|
||||
#include "V2TIMDefine.h"
|
||||
|
||||
#include <cstddef>
|
||||
|
||||
class V2TIMStringIMPL;
|
||||
|
||||
class TIM_API V2TIMString {
|
||||
public:
|
||||
V2TIMString();
|
||||
|
||||
V2TIMString(const char *pStr);
|
||||
|
||||
V2TIMString(const char *pStr, size_t size);
|
||||
|
||||
V2TIMString(const V2TIMString &str);
|
||||
|
||||
virtual ~V2TIMString();
|
||||
|
||||
V2TIMString &operator=(const V2TIMString &str);
|
||||
|
||||
V2TIMString &operator=(const char *pStr);
|
||||
|
||||
bool operator==(const V2TIMString &str) const;
|
||||
|
||||
bool operator!=(const V2TIMString &str) const;
|
||||
|
||||
bool operator<(const V2TIMString &str) const;
|
||||
|
||||
char &operator[](int index);
|
||||
|
||||
size_t Size() const;
|
||||
|
||||
size_t Length() const;
|
||||
|
||||
bool Empty() const;
|
||||
|
||||
const char *CString() const;
|
||||
|
||||
private:
|
||||
V2TIMStringIMPL *impl_;
|
||||
};
|
||||
|
||||
#endif /* __V2TIM_STRING_H__ */
|
||||
Reference in New Issue
Block a user