TIMMessage Class Reference

Inherits from NSObject
Declared in TIMMessage.h

Overview

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

– addElem:

1.1 增加 Elem

- (int)addElem:(TIMElem *)elem

Parameters

elem

elem 结构

Return Value

0:表示成功;1:禁止添加 Elem(文件或语音多于两个 Elem);2:未知 Elem

Declared In

TIMMessage.h

– getElem:

1.2 获取对应索引的 Elem

- (TIMElem *)getElem:(int)index

Parameters

index

对应索引

Return Value

返回对应 Elem

Declared In

TIMMessage.h

– elemCount

1.3 获取 Elem 数量

- (int)elemCount

Return Value

elem数量

Declared In

TIMMessage.h

– setBusinessCmd:

1.4 设置业务命令字

- (int)setBusinessCmd:(NSArray *)buzCmds

Parameters

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":表示不实时下发给用户

Return Value

0:成功;1:buzCmds 为 nil

Declared In

TIMMessage.h

– status

1.5 消息状态

- (TIMMessageStatus)status

Return Value

TIMMessageStatus 消息状态

Declared In

TIMMessage.h

– isSelf

1.6 是否发送方

- (BOOL)isSelf

Return Value

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

Declared In

TIMMessage.h

– sender

1.7 获取消息的发送方

- (NSString *)sender

Return Value

发送方 identifier

Declared In

TIMMessage.h

– msgId

1.8 消息 ID

- (NSString *)msgId

Return Value

msgId

Discussion

  1. 当消息生成时,就已经固定,这种方式可能跟其他用户产生的消息冲突,需要再加一个时间约束,可以认为 10 分钟以内的消息可以使用 msgId 区分,需要在同一个会话内判断。
  2. 对于发送成功的消息或则从服务器接收到的消息,请使用 uniqueId 判断消息的全局唯一。

Declared In

TIMMessage.h

– uniqueId

1.9 消息 uniqueId

- (uint64_t)uniqueId

Return Value

uniqueId

Discussion

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

Declared In

TIMMessage.h

– timestamp

1.10 当前消息的时间戳

- (NSDate *)timestamp

Return Value

时间戳

Discussion

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

Declared In

TIMMessage.h

– isReaded

1.11 自己是否已读

- (BOOL)isReaded

Return Value

TRUE:已读;FALSE:未读

Discussion

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

Declared In

TIMMessage.h

– isPeerReaded

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

- (BOOL)isPeerReaded

Return Value

TRUE:已读;FALSE:未读

Declared In

TIMMessage.h

– locator

1.13 消息定位符

- (TIMMessageLocator *)locator

Return Value

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

Discussion

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

Declared In

TIMMessage.h

– respondsToLocator:

1.14 是否为 locator 对应的消息

- (BOOL)respondsToLocator:(TIMMessageLocator *)locator

Parameters

locator

消息定位符

Return Value

YES 是对应的消息

Declared In

TIMMessage.h

– remove

1.15 删除消息

- (BOOL)remove

Return Value

TRUE:成功;FALSE:失败

Discussion

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

Declared In

TIMMessage.h

– getConversation

1.16 获取会话

- (TIMConversation *)getConversation

Return Value

该消息所对应会话

Declared In

TIMMessage.h

– getSenderProfile:

1.17 获取发送者资料

- (void)getSenderProfile:(ProfileCallBack)profileCallBack

Parameters

profileCallBack

发送者资料回调

Discussion

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

Declared In

TIMMessage.h

– getSenderGroupMemberProfile

1.18 获取发送者群内资料

- (TIMGroupMemberInfo *)getSenderGroupMemberProfile

Return Value

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

Discussion

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

Declared In

TIMMessage.h

– setPriority:

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

- (BOOL)setPriority:(TIMMessagePriority)priority

Parameters

priority

优先级

Return Value

TRUE 设置成功

Discussion

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

Declared In

TIMMessage.h

– getPriority

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

- (TIMMessagePriority)getPriority

Return Value

优先级

Declared In

TIMMessage.h

– setOfflinePushInfo:

1.21 设置消息离线推送配置

- (int)setOfflinePushInfo:(TIMOfflinePushInfo *)info

Parameters

info

配置信息

Return Value

0 成功

Declared In

TIMMessage.h

– getOfflinePushInfo

1.22 获取消息离线推送配置

- (TIMOfflinePushInfo *)getOfflinePushInfo

Return Value

配置信息,没设置返回 nil

Declared In

TIMMessage.h

– setCustomInt:

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

- (BOOL)setCustomInt:(int32_t)param

Parameters

param

设置参数

Return Value

TRUE:设置成功;FALSE:设置失败

Discussion

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

Declared In

TIMMessage.h

– customInt

1.24 获取 CustomInt

- (int32_t)customInt

Return Value

CustomInt

Declared In

TIMMessage.h

– setCustomData:

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

- (BOOL)setCustomData:(NSData *)data

Parameters

data

设置参数

Return Value

TRUE:设置成功;FALSE:设置失败

Discussion

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

Declared In

TIMMessage.h

– customData

1.26 获取 CustomData

- (NSData *)customData

Return Value

CustomData

Declared In

TIMMessage.h

– copyFrom:

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

- (int)copyFrom:(TIMMessage *)srcMsg

Parameters

srcMsg

源消息

Return Value

0 成功

Declared In

TIMMessage.h

– convertToImportedMsg

1.28 将消息导入到本地

- (int)convertToImportedMsg

Return Value

0:成功;1:失败

Discussion

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

Declared In

TIMMessage.h

– setTime:

1.29 设置消息时间戳

- (int)setTime:(time_t)time

Parameters

time

时间戳

Return Value

0:成功;1:失败

Discussion

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

Declared In

TIMMessage.h

– setSender:

1.30 设置消息发送方

- (int)setSender:(NSString *)sender

Parameters

sender

发送方 identifier

Return Value

0:成功;1:失败

Discussion

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

Declared In

TIMMessage.h