# 会话管理
七鱼 iOS SDK 提供会话项相关信息,支持多会话,具体见 平台电商 相关说明。对于非平台企业,会话项一般只有一项,会话相关管理类QYConversationManager
单例通过如下方法获取:
[[QYSDK sharedSDK] conversationManager];
可获取会话消息未读数、清除未读数、获取会话列表、监听会话项变化等。
# 消息未读数
可通过如下接口主动获取消息的未读数量,用于显示未读红点:
/**
* 所有的未读数
*
* @return 未读数
*/
- (NSInteger)allUnreadCount;
如需收到未读消息数量变化通知,通过如下接口设置委托:
/**
* 设置会话委托
*
* @param delegate 会话委托
*/
- (void)setDelegate:(id<QYConversationManagerDelegate>)delegate;
并实现该委托中如下方法即可监听数量变化:
/**
* 会话未读数变化
*
* @param count 未读数
*/
- (void)onUnreadCountChanged:(NSInteger)count;
该未读数为所有会话项的总未读数,如需分开需获取会话列表。如需清空消息未读数量,请调用如下接口:
/**
* 清空未读数
*
*/
- (void)clearUnreadCount;
# 会话列表
可通过如下接口主动获取会话列表,用于构建会话列表页面:
/**
* 获取所有会话的列表;非平台电商用户,只有一个会话项,平台电商用户,有多个会话项
*
* @return 包含SessionInfo的数组
*/
- (NSArray<QYSessionInfo *> *)getSessionList;
如需收到会话列表变化通知,实现委托中如下方法即可:
/**
* 会话列表变化;非平台电商用户,只有一个会话项,平台电商用户,有多个会话项
*/
- (void)onSessionListChanged:(NSArray<QYSessionInfo *> *)sessionList;
会话列表数据以数组形式提供,每个数组元素为QYSessionInfo
对象,提供如下属性:
属性 | 类型 | 说明 |
---|---|---|
lastMessageText | NSString | 会话最后一条消息文本 |
lastMessage | NIMMessage | 会话最后一条消息 |
lastMessageType | NSInteger | 消息类型:文本/图片/语音/视频/自定义 |
unreadCount | NSInteger | 会话未读数 |
status | NSInteger | 会话状态:无/排队中/会话中 |
lastMessageTimeStamp | NSTimeInterval | 会话最后一条消息时间戳 |
hasTrashWords | BOOL | 是否存在垃圾词汇 |
# 监听消息接收
如需实时监听消息接收情况,实现协议QYConversationManagerDelegate
中的如下方法:
/**
* 接收消息
*/
- (void)onReceiveMessage:(QYMessageInfo *)message;
接口提供接收到的最新消息对象QYMessageInfo
类,该类提供如下属性:
属性 | 类型 | 说明 |
---|---|---|
text | NSString | 消息文本 |
type | NSInteger | 消息类型:文本/图片/语音/视频/自定义 |
timeStamp | NSTimeInterval | 消息时间戳 |