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

详细描述

TIMMessage 由多个 TIMElem 组成,每个 TIMElem 可以是文本和图片,也就是说每一条消息可包含多个文本和多张图片。详情请参考官网文档 消息收发

构造函数

(int) - addElem:
 
(TIMElem *) - getElem:
 
(int) - elemCount
 
(int) - setBusinessCmd:
 
(TIMMessageStatus) - status
 
(BOOL) - isSelf
 
(NSString *) - sender
 
(NSString *) - msgId
 
(uint64_t) - uniqueId
 
(NSDate *) - timestamp
 
(BOOL) - isReaded
 
(BOOL) - isPeerReaded
 
(TIMMessageLocator *) - locator
 
(BOOL) - respondsToLocator:
 
(BOOL) - remove
 
(TIMConversation *) - getConversation
 
(NSString *) - getSenderNickname
 
(NSString *) - getSenderFaceURL
 
(void) - getSenderProfile:
 
(TIMGroupMemberInfo *) - getSenderGroupMemberProfile
 
(BOOL) - setPriority:
 
(TIMMessagePriority) - getPriority
 
(int) - setOfflinePushInfo:
 
(TIMOfflinePushInfo *) - getOfflinePushInfo
 
(BOOL) - setCustomInt:
 
(int32_t) - customInt
 
(BOOL) - setCustomData:
 
(NSData *) - customData
 
(int) - copyFrom:
 
(int) - convertToImportedMsg
 
(int) - setTime:
 
(int) - setSender:
 

函数文档

◆ addElem:

- (int) addElem: (TIMElem *)  elem

1.1 增加 Elem

参数
elemelem 结构
返回
0:表示成功;1:禁止添加 Elem(文件或语音多于两个 Elem);2:未知 Elem

◆ getElem:

- (TIMElem*) getElem: (int)  index

1.2 获取对应索引的 Elem

参数
index对应索引
返回
返回对应 Elem

◆ elemCount

- (int) elemCount

1.3 获取 Elem 数量

返回
elem数量

◆ setBusinessCmd:

- (int) setBusinessCmd: (NSArray *)  buzCmds

1.4 设置业务命令字

参数
buzCmds业务命令字列表 "im_open_busi_cmd.msg_robot":表示发送给IM机器人; @"im_open_busi_cmd.msg_nodb":表示不存离线; @"im_open_busi_cmd.msg_noramble":表示不存漫游; @"im_open_busi_cmd.msg_nopush":表示不实时下发给用户
返回
0:成功;1:buzCmds 为 nil

◆ status

- (TIMMessageStatus) status

1.5 消息状态

返回
TIMMessageStatus 消息状态

◆ isSelf

- (BOOL) isSelf

1.6 是否发送方

返回
TRUE:表示是发送消息;FALSE:表示是接收消息

◆ sender

- (NSString*) sender

1.7 获取消息的发送方

返回
发送方 identifier

◆ msgId

- (NSString*) msgId

1.8 消息 ID

当消息生成时就已经固定,全局唯一,会贯穿整个发送以及接收过程。

返回
msgId

◆ uniqueId

- (uint64_t) uniqueId

1.9 消息 uniqueId

对于发送成功的消息或则从服务器接收到的消息,uniqueId 能保证全局唯一,需要在同一个会话内判断。

返回
uniqueId

◆ timestamp

- (NSDate*) timestamp

1.10 当前消息的时间戳

当消息还没发送成功,此时间为根据 Server 时间校准过的本地时间,发送成功后会改为准确的 Server 时间

返回
时间戳

◆ isReaded

- (BOOL) isReaded

1.11 自己是否已读

注意 ChatRoom、AVChatRoom、BChatRoom 不支持未读的功能,isReaded 接口针对这些类型房间无效。

返回
TRUE:已读;FALSE:未读

◆ isPeerReaded

- (BOOL) isPeerReaded

1.12 对方是否已读(仅 C2C 消息有效)

返回
TRUE:已读;FALSE:未读

◆ locator

- (TIMMessageLocator*) locator

1.13 消息定位符

如果是自己创建的 TIMMessage,需要等到消息发送成功后才能获取到 TIMMessageLocator 里面的具体信息

返回
locator,详情请参考 TIMComm.h 里面的 TIMMessageLocator 定义

◆ respondsToLocator:

- (BOOL) respondsToLocator: (TIMMessageLocator *)  locator

1.14 是否为 locator 对应的消息

参数
locator消息定位符
返回
YES 是对应的消息

◆ remove

- (BOOL) remove

1.15 删除消息

目前暂不支持 Server 消息删除,只能在本地删除,如果程序卸载重装,通过 getMessage 接口还是能拉回被删除的消息。

返回
TRUE:成功;FALSE:失败

◆ getConversation

- (TIMConversation*) getConversation

1.16 获取会话

返回
该消息所对应会话

◆ getSenderNickname

- (NSString *) getSenderNickname

1.17 获取发送者昵称

返回
发送者昵称

◆ getSenderFaceURL

- (NSString *) getSenderFaceURL

1.18 获取发送者头像

返回
发送者头像

◆ getSenderProfile:

- (void) getSenderProfile: (ProfileCallBack)  profileCallBack

1.19 获取发送者资料

如果本地有发送者资料,会在 profileCallBack 回调里面立即同步返回发送者资料,如果本地没有发送者资料,SDK 内部会先向服务器拉取发送者资料,并在 profileCallBack 回调里面异步返回发送者资料。

参数
profileCallBack发送者资料回调

◆ getSenderGroupMemberProfile

- (TIMGroupMemberInfo*) getSenderGroupMemberProfile

1.20 获取发送者群内资料

目前仅能获取字段:member,nameCard,其他的字段获取建议通过 TIMGroupManager.h -> getGroupMembersInfo 获取

返回
发送者群内资料,nil 表示没有获取到资料或者不是群消息

◆ setPriority:

- (BOOL) setPriority: (TIMMessagePriority)  priority

1.21 设置消息的优先级(仅对群组消息有效)

对于直播场景,会有点赞和发红包功能,点赞相对优先级较低,红包消息优先级较高,具体消息内容可以使用 TIMCustomElem 进行定义,发送消息时,可设置消息优先级。

参数
priority优先级
返回
TRUE 设置成功

◆ getPriority

- (TIMMessagePriority) getPriority

1.22 获取消息的优先级(仅对群组消息有效)

返回
优先级

◆ setOfflinePushInfo:

- (int) setOfflinePushInfo: (TIMOfflinePushInfo *)  info

1.23 设置消息离线推送配置

参数
info配置信息
返回
0 成功

◆ getOfflinePushInfo

- (TIMOfflinePushInfo*) getOfflinePushInfo

1.24 获取消息离线推送配置

返回
配置信息,没设置返回 nil

◆ setCustomInt:

- (BOOL) setCustomInt: (int32_t)  param

1.25 设置自定义整数,默认为 0

1.此自定义字段仅存储于本地,不会同步到 Server,用户卸载应用或则更换终端后无法获取。 2.可以根据这个字段设置语音消息是否已经播放,如 customInt 的值 0 表示未播放,1 表示播放,当用户单击播放后可设置 customInt 的值为 1。

参数
param设置参数
返回
TRUE:设置成功;FALSE:设置失败

◆ customInt

- (int32_t) customInt

1.26 获取 CustomInt

返回
CustomInt

◆ setCustomData:

- (BOOL) setCustomData: (NSData *)  data

1.27 设置自定义数据,默认为""

此自定义字段仅存储于本地,不会同步到 Server,用户卸载应用或则更换终端后无法获取。

参数
data设置参数
返回
TRUE:设置成功;FALSE:设置失败

◆ customData

- (NSData*) customData

1.28 获取 CustomData

返回
CustomData

◆ copyFrom:

- (int) copyFrom: (TIMMessage *)  srcMsg

1.29 拷贝消息中的属性(ELem、priority、online、offlinePushInfo)

参数
srcMsg源消息
返回
0 成功

◆ convertToImportedMsg

- (int) convertToImportedMsg

1.30 将消息导入到本地

只有调用这个接口,才能去修改消息的时间戳和发送方

返回
0:成功;1:失败

◆ setTime:

- (int) setTime: (time_t)  time

1.31 设置消息时间戳

需要先将消息到导入到本地,调用 convertToImportedMsg 方法

参数
time时间戳
返回
0:成功;1:失败

◆ setSender:

- (int) setSender: (NSString *)  sender

1.32 设置消息发送方

需要先将消息到导入到本地,调用 convertToImportedMsg 方法

参数
sender发送方 identifier
返回
0:成功;1:失败