IMSDK
即时通信 IM 提供全球接入、单聊、群聊、消息推送、资料关系链托管、账号鉴权等全方位解决方案,并提供完备的 App 接入、后台管理接口。
V2TIMManager(Message)

构造函数

(void) - addAdvancedMsgListener:
 
(void) - removeAdvancedMsgListener:
 
(V2TIMMessage *) - createTextMessage:
 
(V2TIMMessage *) - createTextAtMessage:atUserList:
 
(V2TIMMessage *) - createCustomMessage:
 
(V2TIMMessage *) - createCustomMessage:desc:extension:
 
(V2TIMMessage *) - createImageMessage:
 
(V2TIMMessage *) - createSoundMessage:duration:
 
(V2TIMMessage *) - createVideoMessage:type:duration:snapshotPath:
 
(V2TIMMessage *) - createFileMessage:fileName:
 
(V2TIMMessage *) - createLocationMessage:longitude:latitude:
 
(V2TIMMessage *) - createFaceMessage:data:
 
(V2TIMMessage *) - createMergerMessage:title:abstractList:compatibleText:
 
(V2TIMMessage *) - createForwardMessage:
 
(V2TIMMessage *) - createTargetedGroupMessage:receiverList:
 
(V2TIMMessage *) - createAtSignedGroupMessage:atUserList:
 
(NSString *) - sendMessage:receiver:groupID:priority:onlineUserOnly:offlinePushInfo:progress:succ:fail:
 
(void) - setC2CReceiveMessageOpt:opt:succ:fail:
 
(void) - getC2CReceiveMessageOpt:succ:fail:
 
(void) - setGroupReceiveMessageOpt:opt:succ:fail:
 
(void) - setAllReceiveMessageOpt:startHour:startMinute:startSecond:duration:succ:fail:
 
(void) - setAllReceiveMessageOpt:startTimeStamp:duration:succ:fail:
 
(void) - getAllReceiveMessageOpt:fail:
 
(void) - getC2CHistoryMessageList:count:lastMsg:succ:fail:
 
(void) - getGroupHistoryMessageList:count:lastMsg:succ:fail:
 
(void) - getHistoryMessageList:succ:fail:
 
(void) - revokeMessage:succ:fail:
 
(void) - modifyMessage:completion:
 
(void) - deleteMessageFromLocalStorage:succ:fail:
 
(void) - deleteMessages:succ:fail:
 
(void) - clearC2CHistoryMessage:succ:fail:
 
(void) - clearGroupHistoryMessage:succ:fail:
 
(NSString *) - insertGroupMessageToLocalStorage:to:sender:succ:fail:
 
(NSString *) - insertC2CMessageToLocalStorage:to:sender:succ:fail:
 
(void) - findMessages:succ:fail:
 
(void) - searchLocalMessages:succ:fail:
 
(void) - searchCloudMessages:succ:fail:
 
(void) - sendMessageReadReceipts:succ:fail:
 
(void) - getMessageReadReceipts:succ:fail:
 
(void) - getGroupMessageReadMemberList:filter:nextSeq:count:succ:fail:
 
(void) - setMessageExtensions:extensions:succ:fail:
 
(void) - getMessageExtensions:succ:fail:
 
(void) - deleteMessageExtensions:keys:succ:fail:
 
(void) - addMessageReaction:reactionID:succ:fail:
 
(void) - removeMessageReaction:reactionID:succ:fail:
 
(void) - getMessageReactions:maxUserCountPerReaction:succ:fail:
 
(void) - getAllUserListOfMessageReaction:reactionID:nextSeq:count:succ:fail:
 
(void) - translateText:sourceLanguage:targetLanguage:completion:
 
(void) - pinGroupMessage:message:isPinned:succ:fail:
 
(void) - getPinnedGroupMessageList:succ:fail:
 
(void) - markC2CMessageAsRead:succ:fail:
 
(void) - markGroupMessageAsRead:succ:fail:
 
(void) - markAllMessageAsRead:fail:
 

Protected 类型

enum  V2TIMMessageStatus : NSInteger
 
enum  V2TIMElemType : NSInteger
 
enum  V2TIMOfflinePushFlag : NSInteger
 
enum  V2TIMImageType : NSInteger
 
enum  V2TIMGroupTipsType : NSInteger
 
enum  V2TIMGroupInfoChangeType : NSInteger
 
enum  V2TIMMessageGetType : NSInteger
 
enum  V2TIMReceiveMessageOpt : NSInteger
 
enum  V2TIMKeywordListMatchType : NSInteger
 
enum  V2TIMGroupMessageReadMembersFilter : NSInteger
 
enum  V2TIMIOSOfflinePushType : NSInteger
 
typedef void(^ V2TIMMessageListSucc) (NSArray< V2TIMMessage * > *msgs)
 
typedef void(^ V2TIMSearchMessageListSucc) (V2TIMMessageSearchResult *searchResult)
 
typedef void(^ V2TIMProgress) (uint32_t progress)
 
typedef void(^ V2TIMDownLoadProgress) (NSInteger curSize, NSInteger totalSize)
 
typedef void(^ V2TIMReceiveMessageOptListSucc) (NSArray< V2TIMReceiveMessageOptInfo * > *optList)
 
typedef void(^ V2TIMReceiveMessageOptSucc) (V2TIMReceiveMessageOptInfo *optInfo)
 
typedef void(^ V2TIMMessageReadReceiptsSucc) (NSArray< V2TIMMessageReceipt * > *receiptList)
 
typedef void(^ V2TIMGroupMessageReadMemberListSucc) (NSMutableArray< V2TIMGroupMemberInfo * > *members, uint64_t nextSeq, BOOL isFinished)
 
typedef void(^ V2TIMMessageModifyCompletion) (int code, NSString *desc, V2TIMMessage *msg)
 
typedef void(^ V2TIMMessageExtensionsSetSucc) (NSArray< V2TIMMessageExtensionResult * > *extensionResultList)
 
typedef void(^ V2TIMMessageExtensionsGetSucc) (NSArray< V2TIMMessageExtension * > *extensionList)
 
typedef void(^ V2TIMMessageExtensionsDeleteSucc) (NSArray< V2TIMMessageExtensionResult * > *extensionResultList)
 
typedef void(^ V2TIMGetMessageReactionsSucc) (NSArray< V2TIMMessageReactionResult * > *resultList)
 
typedef void(^ V2TIMGetMessageReactionUserListSucc) (NSArray< V2TIMUserInfo * > *userList, uint32_t nextSeq, BOOL isFinished)
 
typedef void(^ V2TIMPinnedMessageListSucc) (NSArray< V2TIMMessage * > *messageList)
 

Protected 属性

NSString *const kImSDK_MesssageAtALL
 

成员类型定义说明

◆ V2TIMMessageListSucc

- (typedef void(^ V2TIMMessageListSucc) (NSArray< V2TIMMessage * > *msgs))
protected

查询历史消息的结果回调(查询接口会批量地返回从某个时间点之前的历史消息)

◆ V2TIMSearchMessageListSucc

- (typedef void(^ V2TIMSearchMessageListSucc) (V2TIMMessageSearchResult *searchResult))
protected

搜索历史消息的结果回调(查询接口支持模糊匹配)

◆ V2TIMProgress

- (typedef void(^ V2TIMProgress) (uint32_t progress))
protected

文件上传进度回调,取值 0 -100

◆ V2TIMDownLoadProgress

- (typedef void(^ V2TIMDownLoadProgress) (NSInteger curSize, NSInteger totalSize))
protected

文件下载进度回调

◆ V2TIMReceiveMessageOptListSucc

- (typedef void(^ V2TIMReceiveMessageOptListSucc) (NSArray< V2TIMReceiveMessageOptInfo * > *optList))
protected

获取消息接收选项的结果回调

◆ V2TIMReceiveMessageOptSucc

- (typedef void(^ V2TIMReceiveMessageOptSucc) (V2TIMReceiveMessageOptInfo *optInfo))
protected

获取全局消息接收选项的结果回调

◆ V2TIMMessageReadReceiptsSucc

- (typedef void(^ V2TIMMessageReadReceiptsSucc) (NSArray< V2TIMMessageReceipt * > *receiptList))
protected

获取群消息已读回执的结果回调

◆ V2TIMGroupMessageReadMemberListSucc

- (typedef void(^ V2TIMGroupMessageReadMemberListSucc) (NSMutableArray< V2TIMGroupMemberInfo * > *members, uint64_t nextSeq, BOOL isFinished))
protected

获取群消息已读或未读群成员列表

◆ V2TIMMessageModifyCompletion

- (typedef void(^ V2TIMMessageModifyCompletion) (int code, NSString *desc, V2TIMMessage *msg))
protected

消息修改完成回调

◆ V2TIMMessageExtensionsSetSucc

- (typedef void(^ V2TIMMessageExtensionsSetSucc) (NSArray< V2TIMMessageExtensionResult * > *extensionResultList))
protected

设置消息扩展成功回调

◆ V2TIMMessageExtensionsGetSucc

- (typedef void(^ V2TIMMessageExtensionsGetSucc) (NSArray< V2TIMMessageExtension * > *extensionList))
protected

获取消息扩展成功回调

◆ V2TIMMessageExtensionsDeleteSucc

- (typedef void(^ V2TIMMessageExtensionsDeleteSucc) (NSArray< V2TIMMessageExtensionResult * > *extensionResultList))
protected

删除消息扩展成功回调

◆ V2TIMGetMessageReactionsSucc

- (typedef void(^ V2TIMGetMessageReactionsSucc) (NSArray< V2TIMMessageReactionResult * > *resultList))
protected

批量拉取消息回应列表成功回调

◆ V2TIMGetMessageReactionUserListSucc

- (typedef void(^ V2TIMGetMessageReactionUserListSucc) (NSArray< V2TIMUserInfo * > *userList, uint32_t nextSeq, BOOL isFinished))
protected

分页拉取指定消息回应用户列表成功回调(userList:用户列表,只包含昵称、头像信息 nextSeq:下一次分页拉取的游标 isFinished:用户列表是否已经拉取完毕)

◆ V2TIMPinnedMessageListSucc

- (typedef void(^ V2TIMPinnedMessageListSucc) (NSArray< V2TIMMessage * > *messageList))
protected

获取置顶消息列表成功的回调

成员枚举类型说明

◆ V2TIMMessageStatus

- (enum V2TIMMessageStatus) :
protected

消息状态

枚举值
V2TIM_MSG_STATUS_SENDING 

消息发送中

V2TIM_MSG_STATUS_SEND_SUCC 

消息发送成功

V2TIM_MSG_STATUS_SEND_FAIL 

消息发送失败

V2TIM_MSG_STATUS_HAS_DELETED 

消息被删除

V2TIM_MSG_STATUS_LOCAL_IMPORTED 

导入到本地的消息

V2TIM_MSG_STATUS_LOCAL_REVOKED 

被撤销的消息

◆ V2TIMElemType

- (enum V2TIMElemType) :
protected

消息类型

枚举值
V2TIM_ELEM_TYPE_NONE 

未知消息

V2TIM_ELEM_TYPE_TEXT 

文本消息

V2TIM_ELEM_TYPE_CUSTOM 

自定义消息

V2TIM_ELEM_TYPE_IMAGE 

图片消息

V2TIM_ELEM_TYPE_SOUND 

语音消息

V2TIM_ELEM_TYPE_VIDEO 

视频消息

V2TIM_ELEM_TYPE_FILE 

文件消息

V2TIM_ELEM_TYPE_LOCATION 

地理位置消息

V2TIM_ELEM_TYPE_FACE 

表情消息

V2TIM_ELEM_TYPE_GROUP_TIPS 

群 Tips 消息

V2TIM_ELEM_TYPE_MERGER 

合并消息

◆ V2TIMOfflinePushFlag

- (enum V2TIMOfflinePushFlag) :
protected

推送规则

枚举值
V2TIM_OFFLINE_PUSH_DEFAULT 

按照默认规则进行推送

V2TIM_OFFLINE_PUSH_NO_PUSH 

不进行推送

◆ V2TIMImageType

- (enum V2TIMImageType) :
protected

图片类型

枚举值
V2TIM_IMAGE_TYPE_ORIGIN 

原图

V2TIM_IMAGE_TYPE_THUMB 

缩略图

V2TIM_IMAGE_TYPE_LARGE 

大图

◆ V2TIMGroupTipsType

- (enum V2TIMGroupTipsType) :
protected

群 Tips 类型

枚举值
V2TIM_GROUP_TIPS_TYPE_JOIN 

主动入群(memberList 加入群组,非 Work 群有效)

V2TIM_GROUP_TIPS_TYPE_INVITE 

被邀请入群(opMember 邀请 memberList 入群,Work 群有效)

V2TIM_GROUP_TIPS_TYPE_QUIT 

退出群 (opMember 退出群组)

V2TIM_GROUP_TIPS_TYPE_KICKED 

踢出群 (opMember 把 memberList 踢出群组)

V2TIM_GROUP_TIPS_TYPE_SET_ADMIN 

设置管理员 (opMember 把 memberList 设置为管理员)

V2TIM_GROUP_TIPS_TYPE_CANCEL_ADMIN 

取消管理员 (opMember 取消 memberList 管理员身份)

V2TIM_GROUP_TIPS_TYPE_GROUP_INFO_CHANGE 

群资料变更 (opMember 修改群资料: groupName & introduction & notification & faceUrl & owner & allMute & custom)

V2TIM_GROUP_TIPS_TYPE_MEMBER_INFO_CHANGE 

群成员资料变更 (opMember 修改群成员资料:muteTime)

V2TIM_GROUP_TIPS_TYPE_TOPIC_INFO_CHANGE 

话题资料变更 (opMember 修改话题资料:topicName & introduction & notification & faceUrl & allMute & topicCustomData)

V2TIM_GROUP_TIPS_TYPE_PINNED_MESSAGE_ADDED 

置顶群消息

V2TIM_GROUP_TIPS_TYPE_PINNED_MESSAGE_DELETED 

取消置顶群消息

◆ V2TIMGroupInfoChangeType

- (enum V2TIMGroupInfoChangeType) :
protected

群变更信息 Tips 类型

枚举值
V2TIM_GROUP_INFO_CHANGE_TYPE_NAME 

群名修改

V2TIM_GROUP_INFO_CHANGE_TYPE_INTRODUCTION 

群简介修改

V2TIM_GROUP_INFO_CHANGE_TYPE_NOTIFICATION 

群公告修改

V2TIM_GROUP_INFO_CHANGE_TYPE_FACE 

群头像修改

V2TIM_GROUP_INFO_CHANGE_TYPE_OWNER 

群主变更

V2TIM_GROUP_INFO_CHANGE_TYPE_CUSTOM 

群自定义字段变更

V2TIM_GROUP_INFO_CHANGE_TYPE_SHUT_UP_ALL 

全员禁言字段变更

V2TIM_GROUP_INFO_CHANGE_TYPE_TOPIC_CUSTOM_DATA 

话题自定义字段变更

V2TIM_GROUP_INFO_CHANGE_TYPE_RECEIVE_MESSAGE_OPT 

消息接收选项变更

V2TIM_GROUP_INFO_CHANGE_TYPE_GROUP_ADD_OPT 

申请加群方式下管理员审批选项变更

V2TIM_GROUP_INFO_CHANGE_TYPE_GROUP_APPROVE_OPT 

邀请进群方式下管理员审批选项变更

V2TIM_GROUP_INFO_CHANGE_TYPE_ENABLE_PERMISSION_GROUP 

是否开启权限组功能变更

V2TIM_GROUP_INFO_CHANGE_TYPE_DEFAULT_PERMISSIONS 

群默认权限变更

◆ V2TIMMessageGetType

- (enum V2TIMMessageGetType) :
protected

消息拉取方式

枚举值
V2TIM_GET_CLOUD_OLDER_MSG 

获取云端更老的消息

V2TIM_GET_CLOUD_NEWER_MSG 

获取云端更新的消息

V2TIM_GET_LOCAL_OLDER_MSG 

获取本地更老的消息

V2TIM_GET_LOCAL_NEWER_MSG 

获取本地更新的消息

◆ V2TIMReceiveMessageOpt

- (enum V2TIMReceiveMessageOpt) :
protected

消息接收选项

枚举值
V2TIM_RECEIVE_MESSAGE 

在线正常接收消息,离线时会进行 APNs 推送

V2TIM_NOT_RECEIVE_MESSAGE 

不会接收到消息,离线不会有推送通知

V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE 

在线正常接收消息,离线不会有推送通知

V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE_EXCEPT_AT 

在线接收消息,离线只接收 at 消息的推送

◆ V2TIMKeywordListMatchType

- (enum V2TIMKeywordListMatchType) :
protected

消息搜索关键字匹配类型

枚举值
V2TIM_KEYWORD_LIST_MATCH_TYPE_OR 
V2TIM_KEYWORD_LIST_MATCH_TYPE_AND 

◆ V2TIMGroupMessageReadMembersFilter

- (enum V2TIMGroupMessageReadMembersFilter) :
protected

群消息已读成员列表过滤类型

枚举值
V2TIM_GROUP_MESSAGE_READ_MEMBERS_FILTER_READ 

群消息已读成员列表

V2TIM_GROUP_MESSAGE_READ_MEMBERS_FILTER_UNREAD 

群消息未读成员列表

◆ V2TIMIOSOfflinePushType

- (enum V2TIMIOSOfflinePushType) :
protected

iOS 离线推送的类型

枚举值
V2TIM_IOS_OFFLINE_PUSH_TYPE_APNS 

普通的 APNs 推送

V2TIM_IOS_OFFLINE_PUSH_TYPE_VOIP 

VoIP 推送

函数文档

◆ addAdvancedMsgListener:()

- (void) addAdvancedMsgListener: (addAdvancedMsgListener(listener:))  NS_SWIFT_NAME

1.1 添加高级消息的事件监听器

◆ removeAdvancedMsgListener:()

- (void) removeAdvancedMsgListener: (removeAdvancedMsgListener(listener:))  NS_SWIFT_NAME

1.2 移除高级消息的事件监听器

◆ createTextMessage:()

- (V2TIMMessage *) createTextMessage: (NSString *)  text

2.1 创建文本消息(最大支持 12KB)

◆ createTextAtMessage:atUserList:()

- (V2TIMMessage *) createTextAtMessage: (NSString *)  text
atUserList: (NSMutableArray< NSString * > *)  atUserList 

2.2 创建文本消息,并且可以附带 @ 提醒功能(最大支持 12KB)

提醒消息仅适用于在群组中发送的消息

参数
atUserList需要 @ 的用户列表,如果需要 @ALL,请传入 kImSDK_MesssageAtALL 常量字符串。 举个例子,假设该条文本消息希望@提醒 denny 和 lucy 两个用户,同时又希望@所有人,atUserList 传 @["denny",@"lucy",kImSDK_MesssageAtALL]
注意
atUserList 使用注意事项
  • 默认情况下,最多支持 @ 30个用户,超过限制后,消息会发送失败。
  • atUserList 的总数不能超过默认最大数,包括 @ALL。
  • 直播群(AVChatRoom)不支持发送 @ 消息。

◆ createCustomMessage:()

- (V2TIMMessage *) createCustomMessage: (NSData *)  data

2.3 创建自定义消息(最大支持 12KB)

◆ createCustomMessage:desc:extension:()

- (V2TIMMessage *) createCustomMessage: (NSData *)  data
desc: (NSString *)  desc
extension: (createCustomMessage(data:desc:ext:))  NS_SWIFT_NAME 

2.4 创建自定义消息(最大支持 12KB)

参数
desc自定义消息描述信息,做离线Push时文本展示。
extension离线Push时扩展字段信息。

◆ createImageMessage:()

- (V2TIMMessage *) createImageMessage: (NSString *)  imagePath

2.5 创建图片消息(图片文件最大支持 28 MB)

注意
如果是系统相册拿的图片,需要先把图片导入 APP 的目录下,具体请参考 Demo TUIChatController -> imagePickerController 代码示例

◆ createSoundMessage:duration:()

- (V2TIMMessage *) createSoundMessage: (NSString *)  audioFilePath
duration: (int)  duration 

2.6 创建语音消息(语音文件最大支持 28 MB)

参数
duration音频时长,单位 s

◆ createVideoMessage:type:duration:snapshotPath:()

- (V2TIMMessage *) createVideoMessage: (NSString *)  videoFilePath
type: (NSString *)  type
duration: (int)  duration
snapshotPath: (NSString *)  snapshotPath 

2.7 创建视频消息(视频文件最大支持 100 MB)

参数
type视频类型,如 mp4 mov 等
duration视频时长,单位 s
snapshotPath视频封面文件路径
注意
如果是系统相册拿的视频,需要先把视频导入 APP 的目录下,具体请参考 Demo TUIChatController -> imagePickerController 代码示例

◆ createFileMessage:fileName:()

- (V2TIMMessage *) createFileMessage: (NSString *)  filePath
fileName: (NSString *)  fileName 

2.8 创建文件消息(文件最大支持 100 MB)

◆ createLocationMessage:longitude:latitude:()

- (V2TIMMessage *) createLocationMessage: (NSString *)  desc
longitude: (double)  longitude
latitude: (double)  latitude 

2.9 创建地理位置消息

◆ createFaceMessage:data:()

- (V2TIMMessage *) createFaceMessage: (int)  index
data: (NSData *)  data 

2.10 创建表情消息

SDK 并不提供表情包,如果开发者有表情包,可使用 index 存储表情在表情包中的索引,或者使用 data 存储表情映射的字符串 key,这些都由用户自定义,SDK 内部只做透传。

参数
index表情索引
data自定义数据

◆ createMergerMessage:title:abstractList:compatibleText:()

- (V2TIMMessage *) createMergerMessage: (NSArray< V2TIMMessage * > *)  messageList
title: (NSString *)  title
abstractList: (NSArray< NSString * > *)  abstractList
compatibleText: (NSString *)  compatibleText 

2.11 创建合并消息(5.2.210 及以上版本支持)

我们在收到一条合并消息的时候,通常会在聊天界面这样显示:

|vinson 和 lynx 的聊天记录 | – title (标题)

|vinson:新版本 SDK 计划什么时候上线呢? | – abstract1 (摘要信息1)

|lynx:计划下周一,具体时间要看下这两天的系统测试情况.. | – abstract2 (摘要信息2)

|vinson:好的. | – abstract3 (摘要信息3)

聊天界面通常只会展示合并消息的标题和摘要信息,完整的转发消息列表,需要用户主动点击转发消息 UI 后再获取。

多条被转发的消息可以被创建成一条合并消息 V2TIMMessage,然后调用 sendMessage 接口发送,实现步骤如下:

1. 调用 createMergerMessage 创建一条合并消息 V2TIMMessage。

2. 调用 sendMessage 发送转发消息 V2TIMMessage。

收到合并消息解析步骤:

1. 通过 V2TIMMessage 获取 mergerElem。

2. 通过 mergerElem 获取 title 和 abstractList UI 展示。

3. 当用户点击摘要信息 UI 的时候,调用 downloadMessageList 接口获取转发消息列表。

参数
messageList消息列表(最大支持 300 条,消息对象必须是 V2TIM_MSG_STATUS_SEND_SUCC 状态,消息类型不能为 V2TIMGroupTipsElem)
title合并消息的来源,比如 "vinson 和 lynx 的聊天记录"、"xxx 群聊的聊天记录"。
abstractList合并消息的摘要列表(最大支持 5 条摘要,每条摘要的最大长度不超过 100 个字符),不同的消息类型可以设置不同的摘要信息,比如: 文本消息可以设置为:sender:text,图片消息可以设置为:sender:[图片],文件消息可以设置为:sender:[文件]。
compatibleText合并消息兼容文本,低版本 SDK 如果不支持合并消息,默认会收到一条文本消息,文本消息的内容为 compatibleText, 该参数不能为 nil。

◆ createForwardMessage:()

- (V2TIMMessage *) createForwardMessage: (V2TIMMessage *)  message

2.12 创建转发消息(5.2.210 及以上版本支持)

如果需要转发一条消息,不能直接调用 sendMessage 接口发送原消息,需要先 createForwardMessage 创建一条转发消息再发送。

参数
message待转发的消息对象,消息状态必须为 V2TIM_MSG_STATUS_SEND_SUCC,消息类型不能为 V2TIMGroupTipsElem。
返回
转发消息对象,elem 内容和原消息完全一致。

◆ createTargetedGroupMessage:receiverList:()

- (V2TIMMessage *) createTargetedGroupMessage: (V2TIMMessage *)  message
receiverList: (NSMutableArray< NSString * > *)  receiverList 

2.13 创建定向群消息(6.0 及以上版本支持)

如果您需要在群内给指定群成员列表发消息,可以创建一条定向群消息,定向群消息只有指定群成员才能收到。

参数
message原始消息对象
receiverList消息接收者列表
返回
定向群消息对象
注意
请注意:
  • 原始消息对象不支持群 @ 消息。
  • 消息接收者列表最大支持 50 个。
  • 社群(Community)和直播群(AVChatRoom)不支持发送定向群消息。
  • 定向群消息默认不计入群会话的未读计数。

◆ createAtSignedGroupMessage:atUserList:()

- (V2TIMMessage *) createAtSignedGroupMessage: (V2TIMMessage *)  message
atUserList: (NSMutableArray< NSString * > *)  atUserList 

2.14 创建带 @ 标记的群消息(7.0 及以上版本支持)

如果您需要发送的群消息附带 @ 提醒功能,可以创建一条带 @ 标记的群消息。

参数
message原始消息对象
atUserList需要 @ 的用户列表,如果需要 @ALL,请传入 kImSDK_MesssageAtALL 常量字符串。 举个例子,假设该条消息希望@提醒 denny 和 lucy 两个用户,同时又希望@所有人,atUserList 传 @["denny",@"lucy",kImSDK_MesssageAtALL]
返回
群 @ 消息对象
注意
atUserList 使用注意事项
  • 默认情况下,最多支持 @ 30个用户,超过限制后,消息会发送失败。
  • atUserList 的总数不能超过默认最大数,包括 @ALL。
  • 直播群(AVChatRoom)不支持发送 @ 消息。

◆ sendMessage:receiver:groupID:priority:onlineUserOnly:offlinePushInfo:progress:succ:fail:()

- (NSString *) sendMessage: (V2TIMMessage *)  message
receiver: (NSString *)  receiver
groupID: (NSString *)  groupID
priority: (V2TIMMessagePriority)  priority
onlineUserOnly: (BOOL)  onlineUserOnly
offlinePushInfo: (V2TIMOfflinePushInfo *)  offlinePushInfo
progress: (V2TIMProgress progress
succ: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

3.1 发送高级消息(高级版本:可以指定优先级,推送信息等特性)

参数
message待发送的消息对象,需要通过对应的 createXXXMessage 接口进行创建。
receiver消息接收者的 userID, 如果是发送 C2C 单聊消息,只需要指定 receiver 即可。
groupID目标群组 ID,如果是发送群聊消息,只需要指定 groupID 即可。
priority消息优先级,仅针对群聊消息有效。请把重要消息设置为高优先级(比如红包、礼物消息),高频且不重要的消息设置为低优先级(比如点赞消息)。
onlineUserOnly是否只有在线用户才能收到,如果设置为 YES ,接收方历史消息拉取不到,常被用于实现”对方正在输入”或群组里的非重要提示等弱提示功能,该字段不支持 AVChatRoom。
offlinePushInfo苹果 APNS 离线推送时携带的标题和声音。
progress文件上传进度(当发送消息中包含图片、语音、视频、文件等富媒体消息时才有效)。
返回
msgID 消息唯一标识
注意
  • 6.0 及以上版本支持定向群消息,如果 groupID 和 receiver 同时设置,表示给 receiver 发送定向群消息,如果要给多个 receiver 发送定向群消息,需要先调用 createTargetedGroupMessage 接口创建定向群消息后再发送。
  • 如果需要消息离线推送,请先在 V2TIMManager+APNS.h 开启推送,推送开启后,除了自定义消息,其他消息默认都会推送。
  • 如果自定义消息也需要推送,请设置 offlinePushInfo 的 desc 字段,设置成功后,推送的时候会默认展示 desc 信息。
  • AVChatRoom 群聊不支持 onlineUserOnly 字段,如果是 AVChatRoom 请将该字段设置为 NO。
  • 如果设置 onlineUserOnly 为 YES 时,该消息为在线消息且不会被计入未读计数。

◆ setC2CReceiveMessageOpt:opt:succ:fail:()

- (void) setC2CReceiveMessageOpt: (NSArray< NSString * > *)  userIDList
opt: (V2TIMReceiveMessageOpt opt
succ: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

4.1 设置针对某个用户的 C2C 消息接收选项(支持批量设置)

5.3.425 及以上版本支持

注意
  • 该接口支持批量设置,您可以通过参数 userIDList 设置一批用户,但一次最大允许设置 30 个用户。
  • 该接口调用频率被限制为1秒内最多调用5次。

◆ getC2CReceiveMessageOpt:succ:fail:()

- (void) getC2CReceiveMessageOpt: (NSArray< NSString * > *)  userIDList
succ: (V2TIMReceiveMessageOptListSucc succ
fail: (V2TIMFail)  fail 

4.2 查询针对某个用户的 C2C 消息接收选项

5.3.425 及以上版本支持

◆ setGroupReceiveMessageOpt:opt:succ:fail:()

- (void) setGroupReceiveMessageOpt: (NSString *)  groupID
opt: (V2TIMReceiveMessageOpt opt
succ: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

4.3 设置群消息的接收选项

◆ setAllReceiveMessageOpt:startHour:startMinute:startSecond:duration:succ:fail:()

- (void) setAllReceiveMessageOpt: (V2TIMReceiveMessageOpt opt
startHour: (int32_t)  startHour
startMinute: (int32_t)  startMinute
startSecond: (int32_t)  startSecond
duration: (uint32_t)  duration
succ: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

4.4 设置全局消息接收选项,从 7.4 版本开始支持。

参数
opt全局消息接收选项,支持两种取值: V2TIMReceiveMessageOpt.V2TIM_RECEIVE_MESSAGE:在线正常接收消息,离线时会有厂商的离线推送通知,默认为该选项 V2TIMReceiveMessageOpt.V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE:在线正常接收消息,离线不会有推送通知,可用于实现消息免打扰功能
startHour免打扰开始时间:小时,取值范围[0 - 23]
startMinute免打扰开始时间:分钟,取值范围[0 - 59]
startSecond免打扰开始时间:秒,取值范围[0 - 59]
duration免打扰持续时长:单位:秒,取值范围 [0 - 24*60*60].
注意
请注意
  • 当 duration 的取值小于 24*60*60 时,可用于实现重复免打扰,即消息免打扰从每天的 startHour:startMinute:startSecond 表示的时间点开始,持续时长为 druation 秒
  • 当 duration 取值不小于 24*60*60 时,可用于实现永久免打扰,即从调用该 API 当天 startHour:startMinute:startSecond 表示的时间点开始永久消息免打扰

◆ setAllReceiveMessageOpt:startTimeStamp:duration:succ:fail:()

- (void) setAllReceiveMessageOpt: (V2TIMReceiveMessageOpt opt
startTimeStamp: (uint32_t)  startTimeStamp
duration: (uint32_t)  duration
succ: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

4.5 设置全局消息接收选项,从 7.4 版本开始支持。

参数
opt全局消息接收选项,支持两种取值: V2TIMReceiveMessageOpt.V2TIM_RECEIVE_MESSAGE:在线正常接收消息,离线时会有厂商的离线推送通知,默认为该选项 V2TIMReceiveMessageOpt.V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE:在线正常接收消息,离线不会有推送通知,可用于实现消息免打扰功能
startTimeStamp免打扰开始时间,UTC 时间戳,单位:秒
duration免打扰持续时长,单位:秒

◆ getAllReceiveMessageOpt:fail:()

- (void) getAllReceiveMessageOpt: (V2TIMReceiveMessageOptSucc succ
fail: (V2TIMFail)  fail 

4.6 获取登录用户全局消息接收选项,从 7.3 版本开始支持

◆ getC2CHistoryMessageList:count:lastMsg:succ:fail:()

- (void) getC2CHistoryMessageList: (NSString *)  userID
count: (int)  count
lastMsg: (V2TIMMessage *)  lastMsg
succ: (V2TIMMessageListSucc succ
fail: (V2TIMFail)  fail 

5.1 获取单聊历史消息

参数
count拉取消息的个数,不宜太多,会影响消息拉取的速度,这里建议一次拉取 20 个
lastMsg获取消息的起始消息,如果传 nil,起始消息为会话的最新消息
注意
  • 如果没有触发登录,调用该接口不会返回历史消息
  • 如果登录失败,调用该接口会返回本地历史消息
  • 如果 SDK 检测到没有网络,调用该接口会返回本地历史消息
  • 如果登录成功且网络正常,调用该接口会先请求云端历史消息,然后再和本地历史消息合并后返回

◆ getGroupHistoryMessageList:count:lastMsg:succ:fail:()

- (void) getGroupHistoryMessageList: (NSString *)  groupID
count: (int)  count
lastMsg: (V2TIMMessage *)  lastMsg
succ: (V2TIMMessageListSucc succ
fail: (V2TIMFail)  fail 

5.2 获取群组历史消息

参数
count拉取消息的个数,不宜太多,会影响消息拉取的速度,这里建议一次拉取 20 个
lastMsg获取消息的起始消息,如果传 nil,起始消息为会话的最新消息
注意
请注意:
  • 如果没有触发登录,调用该接口不会返回历史消息
  • 如果登录失败,调用该接口会返回本地历史消息
  • 如果 SDK 检测到没有网络,调用该接口会返回本地历史消息
  • 如果登录成功且网络正常,调用该接口会先请求云端历史消息,然后再和本地历史消息合并后返回
  • 只有会议群(Meeting)才能拉取到进群前的历史消息,直播群(AVChatRoom)消息不存漫游和本地数据库,调用这个接口无效

◆ getHistoryMessageList:succ:fail:()

- (void) getHistoryMessageList: (V2TIMMessageListGetOption *)  option
succ: (V2TIMMessageListSucc succ
fail: (V2TIMFail)  fail 

5.3 获取历史消息高级接口

参数
option拉取消息选项设置,可以设置从云端、本地拉取更老或更新的消息
注意
请注意:
  • 如果没有触发登录,调用该接口不会返回历史消息
  • 如果登录失败,调用该接口会返回本地历史消息
  • 如果 SDK 检测到没有网络,调用该接口会返回本地历史消息
  • 如果登录成功且网络正常,当 option 设置为拉取云端历史消息,调用该接口会先请求云端历史消息,然后再和本地历史消息合并后返回
  • 只有会议群(Meeting)才能拉取到进群前的历史消息,直播群(AVChatRoom)消息不存漫游和本地数据库,调用这个接口无效

◆ revokeMessage:succ:fail:()

- (void) revokeMessage: (V2TIMMessage *)  msg
succ: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

5.4 撤回消息

注意
请注意:
  • 撤回消息的时间限制默认 2 minutes,超过 2 minutes 的消息不能撤回,您也可以在 控制台(功能配置 -> 登录与消息 -> 消息撤回设置)自定义撤回时间限制。
  • 仅支持单聊和群组中发送的普通消息,无法撤销 onlineUserOnly 为 true 即仅在线用户才能收到的消息。
  • 如果发送方撤回消息,已经收到消息的一方会收到 V2TIMAdvancedMsgListener -> onRecvMessageRevoked 回调。
  • 从 IMSDK 7.4 版本开始,支持撤回包括直播群(AVChatRoom)、社群在内的所有群类型的消息。
  • 在单聊场景中,仅能撤回自己的消息;在群聊场景中,除了可以撤回自己的消息外,管理员或者群主也可以撤回其他群成员的消息。

◆ modifyMessage:completion:()

- (void) modifyMessage: (V2TIMMessage *)  msg
completion: (V2TIMMessageModifyCompletion completion 

5.5 消息变更

注意
请注意:
  • 如果消息修改成功,自己和对端用户(C2C)或群组成员(Group)都会收到 onRecvMessageModified 回调。
  • 如果在修改消息过程中,消息已经被其他人修改,completion 会返回 ERR_SDK_MSG_MODIFY_CONFLICT 错误。
  • 消息无论修改成功或则失败,completion 都会返回最新的消息对象。

◆ deleteMessageFromLocalStorage:succ:fail:()

- (void) deleteMessageFromLocalStorage: (V2TIMMessage *)  msg
succ: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

5.6 删除本地消息

注意
该接口只能删除本地历史,消息删除后,SDK 会在本地把这条消息标记为已删除状态,getHistoryMessage 不能再拉取到,如果程序卸载重装,本地会失去对这条消息的删除标记,getHistoryMessage 还能再拉取到该条消息。

◆ deleteMessages:succ:fail:()

- (void) deleteMessages: (NSArray< V2TIMMessage * > *)  msgList
succ: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

5.7 删除本地及云端的消息

注意
该接口会在 deleteMessageFromLocalStorage 的基础上,同步删除云端存储的消息,且无法恢复。需要注意的是:
  • 一次最多只能删除 50 条消息
  • 要删除的消息必须属于同一会话
  • 一秒钟最多只能调用一次该接口
  • 如果该账号在其他设备上拉取过这些消息,那么调用该接口删除后,这些消息仍然会保存在那些设备上,即删除消息不支持多端同步。

◆ clearC2CHistoryMessage:succ:fail:()

- (void) clearC2CHistoryMessage: (NSString *)  userID
succ: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

5.8 清空单聊本地及云端的消息(不删除会话)

5.4.666 及以上版本支持

注意
请注意:
  • 会话内的消息在本地删除的同时,在服务器也会同步删除。

◆ clearGroupHistoryMessage:succ:fail:()

- (void) clearGroupHistoryMessage: (NSString *)  groupID
succ: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

5.9 清空群聊本地及云端的消息(不删除会话)

5.4.666 及以上版本支持

注意
请注意:
  • 会话内的消息在本地删除的同时,在服务器也会同步删除。

◆ insertGroupMessageToLocalStorage:to:sender:succ:fail:()

- (NSString *) insertGroupMessageToLocalStorage: (V2TIMMessage *)  msg
to: (NSString *)  groupID
sender: (NSString *)  sender
succ: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

5.10 向群组消息列表中添加一条消息

该接口主要用于满足向群组聊天会话中插入一些提示性消息的需求,比如“您已经退出该群”,这类消息有展示 在聊天消息区的需求,但并没有发送给其他人的必要。 所以 insertGroupMessageToLocalStorage() 相当于一个被禁用了网络发送能力的 sendMessage() 接口。

返回
msgID 消息唯一标识
注意
通过该接口 save 的消息只存本地,程序卸载后会丢失。

◆ insertC2CMessageToLocalStorage:to:sender:succ:fail:()

- (NSString *) insertC2CMessageToLocalStorage: (V2TIMMessage *)  msg
to: (NSString *)  userID
sender: (NSString *)  sender
succ: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

5.11 向C2C消息列表中添加一条消息

该接口主要用于满足向C2C聊天会话中插入一些提示性消息的需求,比如“您已成功发送消息”,这类消息有展示 在聊天消息区的需求,但并没有发送给对方的必要。 所以 insertC2CMessageToLocalStorage()相当于一个被禁用了网络发送能力的 sendMessage() 接口。

返回
msgID 消息唯一标识
注意
通过该接口 save 的消息只存本地,程序卸载后会丢失。

◆ findMessages:succ:fail:()

- (void) findMessages: (NSArray< NSString * > *)  messageIDList
succ: (V2TIMMessageListSucc succ
fail: (V2TIMFail)  fail 

5.12 根据 messageID 查询指定会话中的本地消息

参数
messageIDList消息 ID 列表

◆ searchLocalMessages:succ:fail:()

- (void) searchLocalMessages: (V2TIMMessageSearchParam *)  param
succ: (V2TIMSearchMessageListSucc succ
fail: (V2TIMFail)  fail 

5.13 搜索本地消息(5.4.666 及以上版本支持,需要您购买旗舰版套餐)

参数
param消息搜索参数,详见 V2TIMMessageSearchParam 的定义
注意
该功能为 IM 旗舰版功能,购买旗舰版套餐包后可使用,详见价格说明

◆ searchCloudMessages:succ:fail:()

- (void) searchCloudMessages: (V2TIMMessageSearchParam *)  param
succ: (V2TIMSearchMessageListSucc succ
fail: (V2TIMFail)  fail 

5.14 搜索云端消息(7.3 及以上版本支持)

参数
param消息搜索参数,详见 V2TIMMessageSearchParam 的定义
注意
  • 该功能为 IM 增值功能,详见价格说明
  • 如果您没有开通该服务,调用接口会返回 60020 错误码

◆ sendMessageReadReceipts:succ:fail:()

- (void) sendMessageReadReceipts: (NSArray< V2TIMMessage * > *)  messageList
succ: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

5.15 发送消息已读回执 (6.1 及其以上版本支持)

注意
请注意:
  • 该功能为旗舰版功能,购买旗舰版套餐包后可使用,详见价格说明
  • 向群消息发送已读回执,需要您先到控制台打开对应的开关,详情参考文档 群消息已读回执
  • messageList 里的消息必须在同一个会话中。
  • 该接口调用成功后,会话未读数不会变化,消息发送者会收到 onRecvMessageReadReceipts 回调,回调里面会携带消息的最新已读信息。

◆ getMessageReadReceipts:succ:fail:()

- (void) getMessageReadReceipts: (NSArray< V2TIMMessage * > *)  messageList
succ: (V2TIMMessageReadReceiptsSucc succ
fail: (V2TIMFail)  fail 

5.16 获取消息已读回执(6.1 及其以上版本支持)

参数
messageList消息列表
注意
请注意:

◆ getGroupMessageReadMemberList:filter:nextSeq:count:succ:fail:()

- (void) getGroupMessageReadMemberList: (V2TIMMessage *)  message
filter: (V2TIMGroupMessageReadMembersFilter filter
nextSeq: (uint64_t)  nextSeq
count: (uint32_t)  count
succ: (V2TIMGroupMessageReadMemberListSucc succ
fail: (V2TIMFail)  fail 

5.17 获取群消息已读群成员列表(6.1 及其以上版本支持)

参数
message群消息
filter指定拉取已读或未读群成员列表。
nextSeq分页拉取的游标,第一次默认取传 0,后续分页拉传上一次分页拉取成功回调里的 nextSeq。
count分页拉取的个数,最大支持 100 个。
注意
请注意:

◆ setMessageExtensions:extensions:succ:fail:()

- (void) setMessageExtensions: (V2TIMMessage *)  message
extensions: (NSArray< V2TIMMessageExtension * > *)  extensions
succ: (V2TIMMessageExtensionsSetSucc succ
fail: (V2TIMFail)  fail 

5.18 设置消息扩展(6.7 及其以上版本支持,需要您购买旗舰版套餐)

参数
message消息对象,消息需满足三个条件:1、消息发送前需设置 supportMessageExtension 为 YES,2、消息必须是发送成功的状态,3、消息不能是直播群(AVChatRoom)消息。
extensions扩展信息,如果扩展 key 已经存在,则修改扩展的 value 信息,如果扩展 key 不存在,则新增扩展。
注意
  • 扩展 key 最大支持 100 字节,扩展 value 最大支持 1KB,单次最多支持设置 20 个扩展,单条消息最多可设置 300 个扩展。
  • 当多个用户同时设置或删除同一个扩展 key 时,只有第一个用户可以执行成功,其它用户会收到 23001 错误码和最新的扩展信息,在收到错误码和扩展信息后,请按需重新发起设置操作。
  • 我们强烈建议不同的用户设置不同的扩展 key,这样大部分场景都不会冲突,比如投票、接龙、问卷调查,都可以把自己的 userID 作为扩展 key。

◆ getMessageExtensions:succ:fail:()

- (void) getMessageExtensions: (V2TIMMessage *)  message
succ: (V2TIMMessageExtensionsGetSucc succ
fail: (V2TIMFail)  fail 

5.19 获取消息扩展(6.7 及其以上版本支持,需要您购买旗舰版套餐)

◆ deleteMessageExtensions:keys:succ:fail:()

- (void) deleteMessageExtensions: (V2TIMMessage *)  message
keys: (NSArray< NSString * > *)  keys
succ: (V2TIMMessageExtensionsDeleteSucc succ
fail: (V2TIMFail)  fail 

5.20 删除消息扩展(6.7 及其以上版本支持,需要您购买旗舰版套餐)

参数
keys消息扩展 key 列表, 单次最大支持删除 20 个消息扩展,如果设置为 nil ,表示删除所有消息扩展
注意
  • 当多个用户同时设置或删除同一个扩展 key 时,只有第一个用户可以执行成功,其它用户会收到 23001 错误码和最新的扩展信息,在收到错误码和扩展信息后,请按需重新发起删除操作。

◆ addMessageReaction:reactionID:succ:fail:()

- (void) addMessageReaction: (V2TIMMessage *)  message
reactionID: (NSString *)  reactionID
succ: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

5.21 添加消息回应(可以用于实现表情回应)(7.4 及其以上版本支持,需要您购买旗舰版套餐)

表情回应功能是指对某条消息通过表情符号进行互动回应,我们可以看到每种表情的回应人数和回应人列表。

目前常见的消息回应展示方式会有如下两种风格:

风格一:

-------------------------—

| lucy, happy birthday! |

-------------------------—

| 😄 1 💐 2 👍🏻 10 |

-------------------------—

风格二:

---------------------------------------------—

| lucy, happy birthday! |

---------------------------------------------—

| 😁 bob 💐olivia 🎂david |

| 👍🏻 denny、james、lucy、linda、thomas 等10人 |

---------------------------------------------—

当用户点击某个表情后,会跳转到表情回应详情界面:

| 😄 | 💐 | 👍🏻 |

| bob | olivia | lucy |

| ... | ... | denny |

| ... | ... | ... |

用户可以根据某个表情分页拉取使用该表情的用户信息。

您可以基于 SDK API 实现表情回应能力:

1、调用 addMessageReaction 接口为一条消息添加一个 emoji,添加成功后,emoji 下就会存储当前操作用户。

2、调用 removeMessageReaction 接口删除已经添加的 emoji,删除成功后,emoji 下就不再存储当前操作用户。

3、调用 getMessageReactions 接口批量拉取多条消息的 emoji 列表,其中每个 emoji 都包含了当前使用者总人数以及前 N(默认 10)个使用者用户资料。

4、调用 getAllUserListOfMessageReaction 接口分页拉取消息 emoji 的全量使用者用户资料。

5、监听 onRecvMessageReactionsChanged 回调,感知 emoji 的使用者信息变更,该回调会携带 emoji 最新的使用者信息(包含使用者总人数以及前 N 个使用者用户资料)。

参数
reactionID消息回应 ID,在表情回应场景,reactionID 为表情 ID,单条消息最大支持 10 个 Reaction,单个 Reaction 最大支持 100 个用户。
注意
  • 该功能为旗舰版功能,需要您购买旗舰版套餐。
  • 如果单条消息 Reaction 数量超过最大限制,调用接口会报 ERR_SVR_MSG_REACTION_COUNT_LIMIT 错误。
  • 如果单个 Reaction 用户数量超过最大限制,调用接口会报 ERR_SVR_MSG_REACTION_USER_COUNT_LIMIT 错误。
  • 如果 Reaction 已经包含当前用户,调用接口会报 ERR_SVR_MSG_REACTION_ALREADY_CONTAIN_USER 错误。

◆ removeMessageReaction:reactionID:succ:fail:()

- (void) removeMessageReaction: (V2TIMMessage *)  message
reactionID: (NSString *)  reactionID
succ: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

5.22 删除消息回应(7.4 及其以上版本支持,需要您购买旗舰版套餐)

注意
  • 如果 Reaction 不存在,调用接口会报 ERR_SVR_MSG_REACTION_NOT_EXISTS 错误。
  • 如果 Reaction 不包含当前用户,调用接口会报 ERR_SVR_MSG_REACTION_NOT_CONTAIN_USER 错误。

◆ getMessageReactions:maxUserCountPerReaction:succ:fail:()

- (void) getMessageReactions: (NSArray< V2TIMMessage * > *)  messageList
maxUserCountPerReaction: (uint32_t)  maxUserCountPerReaction
succ: (V2TIMGetMessageReactionsSucc succ
fail: (V2TIMFail)  fail 

5.23 批量拉取多条消息回应信息(7.4 及其以上版本支持,需要您购买旗舰版套餐)

参数
messageList消息列表,一次最大支持 20 条消息,消息必须属于同一个会话。
maxUserCountPerReaction取值范围 【0,10】,每个 Reaction 最多只返回前 10 个用户信息,如需更多用户信息,可以按需调用 getAllUserListOfMessageReaction 接口分页拉取。

◆ getAllUserListOfMessageReaction:reactionID:nextSeq:count:succ:fail:()

- (void) getAllUserListOfMessageReaction: (V2TIMMessage *)  message
reactionID: (NSString *)  reactionID
nextSeq: (uint32_t)  nextSeq
count: (uint32_t)  count
succ: (V2TIMGetMessageReactionUserListSucc succ
fail: (V2TIMFail)  fail 

5.24 分页拉取使用指定消息回应用户信息(7.4 及其以上版本支持,需要您购买旗舰版套餐)

参数
message消息对象
reactionID消息回应 ID
nextSeq分页拉取的游标,第一次传 0,后续分页传 succ 返回的 nextSeq。
count一次分页最大拉取个数,最大支持 100 个。

◆ translateText:sourceLanguage:targetLanguage:completion:()

- (void) translateText: (NSArray< NSString * > *)  sourceTextList
sourceLanguage: (NSString *)  source
targetLanguage: (NSString *)  target
completion: (void(^)(int code, NSString *desc, NSDictionary< NSString *, NSString * > *result))  callback 

5.25 翻译文本消息

参数
sourceTextList待翻译文本数组。
source源语言。可以设置为特定语言或 ”auto“。“auto“ 表示自动识别源语言。传空默认为 ”auto“。
target目标语言。支持的目标语言有多种,例如:英语-“en“,简体中文-”zh“,法语-”fr“,德语-”de“等。详情请参考文档:文本翻译语言支持
callback翻译结果回调。其中 result 的 key 为待翻译文本, value 为翻译后文本。

◆ pinGroupMessage:message:isPinned:succ:fail:()

- (void) pinGroupMessage: (NSString *)  groupID
message: (V2TIMMessage *)  message
isPinned: (BOOL)  isPinned
succ: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

5.26 设置群消息置顶(7.9 及以上版本支持,需要您购买旗舰版套餐)

参数
groupID群 ID
isPinned是否置顶
注意
  • 最多支持置顶10条消息。
  • 此接口用于置顶和取消置顶对应的群消息,如果置顶消息数量超出限制sdk会返回错误码10070。

◆ getPinnedGroupMessageList:succ:fail:()

- (void) getPinnedGroupMessageList: (NSString *)  groupID
succ: (V2TIMPinnedMessageListSucc succ
fail: (V2TIMFail)  fail 

5.27 获取已置顶的群消息列表(7.9 及以上版本支持,需要您购买旗舰版套餐)

参数
groupID群 ID
注意
  • 此接口用于获取置顶消息列表,如果置顶消息已过期不会返回

◆ markC2CMessageAsRead:succ:fail:()

- (void) markC2CMessageAsRead: (NSString *)  userID
succ: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

5.28 标记单聊会话已读(待废弃接口,请使用 cleanConversationUnreadMessageCount 接口)

注意
请注意:
  • 该接口调用成功后,自己的未读数会清 0,对端用户会收到 onRecvC2CReadReceipt 回调,回调里面会携带标记会话已读的时间。
  • 从 5.8 版本开始,当 userID 为 nil 时,标记所有单聊会话为已读状态。

◆ markGroupMessageAsRead:succ:fail:()

- (void) markGroupMessageAsRead: (NSString *)  groupID
succ: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

5.29 标记群组会话已读(待废弃接口,请使用 cleanConversationUnreadMessageCount 接口)

注意
请注意:
  • 该接口调用成功后,自己的未读数会清 0。
  • 从 5.8 版本开始,当 groupID 为 nil 时,标记所有群组会话为已读状态。

◆ markAllMessageAsRead:fail:()

- (void) markAllMessageAsRead: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

5.30 标记所有会话为已读(待废弃接口,请使用 cleanConversationUnreadMessageCount 接口)

结构体成员变量说明

◆ kImSDK_MesssageAtALL

- (NSString* const) kImSDK_MesssageAtALL
protected

在接口 createTextAtMessage 中填入 kMesssageAtALL 表示当前消息需要 @ 群里所有人