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: |
- (int) addElem: | (TIMElem *) | elem |
1.1 增加 Elem
elem | elem 结构 |
- (TIMElem*) getElem: | (int) | index |
1.2 获取对应索引的 Elem
index | 对应索引 |
- (int) elemCount |
1.3 获取 Elem 数量
- (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":表示不实时下发给用户 |
- (TIMMessageStatus) status |
1.5 消息状态
- (BOOL) isSelf |
1.6 是否发送方
- (NSString*) sender |
1.7 获取消息的发送方
- (NSString*) msgId |
1.8 消息 ID
当消息生成时就已经固定,全局唯一,会贯穿整个发送以及接收过程。
- (uint64_t) uniqueId |
1.9 消息 uniqueId
对于发送成功的消息或则从服务器接收到的消息,uniqueId 能保证全局唯一,需要在同一个会话内判断。
- (NSDate*) timestamp |
1.10 当前消息的时间戳
当消息还没发送成功,此时间为根据 Server 时间校准过的本地时间,发送成功后会改为准确的 Server 时间
- (BOOL) isReaded |
1.11 自己是否已读
注意 ChatRoom、AVChatRoom、BChatRoom 不支持未读的功能,isReaded 接口针对这些类型房间无效。
- (BOOL) isPeerReaded |
1.12 对方是否已读(仅 C2C 消息有效)
- (TIMMessageLocator*) locator |
1.13 消息定位符
如果是自己创建的 TIMMessage,需要等到消息发送成功后才能获取到 TIMMessageLocator 里面的具体信息
- (BOOL) respondsToLocator: | (TIMMessageLocator *) | locator |
1.14 是否为 locator 对应的消息
locator | 消息定位符 |
- (BOOL) remove |
1.15 删除消息
目前暂不支持 Server 消息删除,只能在本地删除,如果程序卸载重装,通过 getMessage 接口还是能拉回被删除的消息。
- (TIMConversation*) getConversation |
1.16 获取会话
- (NSString *) getSenderNickname |
1.17 获取发送者昵称
- (NSString *) getSenderFaceURL |
1.18 获取发送者头像
- (void) getSenderProfile: | (ProfileCallBack) | profileCallBack |
1.19 获取发送者资料
如果本地有发送者资料,会在 profileCallBack 回调里面立即同步返回发送者资料,如果本地没有发送者资料,SDK 内部会先向服务器拉取发送者资料,并在 profileCallBack 回调里面异步返回发送者资料。
profileCallBack | 发送者资料回调 |
- (TIMGroupMemberInfo*) getSenderGroupMemberProfile |
1.20 获取发送者群内资料
目前仅能获取字段:member,nameCard,其他的字段获取建议通过 TIMGroupManager.h -> getGroupMembersInfo 获取
- (BOOL) setPriority: | (TIMMessagePriority) | priority |
1.21 设置消息的优先级(仅对群组消息有效)
对于直播场景,会有点赞和发红包功能,点赞相对优先级较低,红包消息优先级较高,具体消息内容可以使用 TIMCustomElem 进行定义,发送消息时,可设置消息优先级。
priority | 优先级 |
- (TIMMessagePriority) getPriority |
1.22 获取消息的优先级(仅对群组消息有效)
- (int) setOfflinePushInfo: | (TIMOfflinePushInfo *) | info |
1.23 设置消息离线推送配置
info | 配置信息 |
- (TIMOfflinePushInfo*) getOfflinePushInfo |
1.24 获取消息离线推送配置
- (BOOL) setCustomInt: | (int32_t) | param |
1.25 设置自定义整数,默认为 0
1.此自定义字段仅存储于本地,不会同步到 Server,用户卸载应用或则更换终端后无法获取。 2.可以根据这个字段设置语音消息是否已经播放,如 customInt 的值 0 表示未播放,1 表示播放,当用户单击播放后可设置 customInt 的值为 1。
param | 设置参数 |
- (int32_t) customInt |
1.26 获取 CustomInt
- (BOOL) setCustomData: | (NSData *) | data |
1.27 设置自定义数据,默认为""
此自定义字段仅存储于本地,不会同步到 Server,用户卸载应用或则更换终端后无法获取。
data | 设置参数 |
- (NSData*) customData |
1.28 获取 CustomData
- (int) copyFrom: | (TIMMessage *) | srcMsg |
1.29 拷贝消息中的属性(ELem、priority、online、offlinePushInfo)
srcMsg | 源消息 |
- (int) convertToImportedMsg |
1.30 将消息导入到本地
只有调用这个接口,才能去修改消息的时间戳和发送方
- (int) setTime: | (time_t) | time |
1.31 设置消息时间戳
需要先将消息到导入到本地,调用 convertToImportedMsg 方法
time | 时间戳 |
- (int) setSender: | (NSString *) | sender |
1.32 设置消息发送方
需要先将消息到导入到本地,调用 convertToImportedMsg 方法
sender | 发送方 identifier |