输入状态
应用程序可以在单聊会话中发送当前用户输入状态。对端收到通知后可以在 UI 展示 “xxx 正在输入”。
发送输入状态消息
在当前用户输入文本时调用 sendTypingStatus
,发送当前用户输入状态。
IMLib SDK 内部逻辑 6s 内同一用户只能向同一会话发送一条输入状态消息。接收同一会话发送的状态消息处理时间间隔默认为 6s。目前无法修改此配置。
接口原型
Objective C
- (void)sendTypingStatus:(RCConversationType)conversationType
targetId:(NSString *)targetId
contentType:(NSString *)objectName;
参数说明
参数 | 类型 | 说明 |
---|---|---|
conversationType | RCConversationType | 会话类型。该接口仅支持单聊会话类型。 |
targetId | NSString | 会话 Id |
objectName | NSString | 正在输入的消息的类型名。如文本消息,通过 [RCTextMessage getObjectName] 获取类型名。 |
示例代码
Objective C
[[RCCoreClient sharedCoreClient] sendTypingStatus:self.conversationType
targetId:self.targetId
contentType:[RCTextMessage getObjectName]];
监听输入状态
应用程序可以使用 setRCTypingStatusDelegate
设置 RCTypingStatusDelegate
代理,监听在单聊类型的会话收到的输入状态通知。在收到对端发来的输入状态通知时,SDK 会通过 onTypingStatusChanged
回调方法返回当前正在输入的用户列表和消息类型。
设置代理委托
Objective C
[[RCCoreClient sharedCoreClient] setRCTypingStatusDelegate:self];
代理方法
Objective C
@protocol RCTypingStatusDelegate <NSObject>
/*!
用户输入状态变化的回调
@param conversationType 会话类型
@param targetId 会话目标ID
@param userTypingStatusList 正在输入的RCUserTypingStatus列表(nil 表示当前没有用户正在输入)
@discussion
当客户端收到用户输入状态的变化时,会回调此接口,通知发生变化的会话以及当前正在输入的RCUserTypingStatus列表。
@warning 目前仅支持单聊。
*/
- (void)onTypingStatusChanged:(RCConversationType)conversationType
targetId:(NSString *)targetId
status:(NSArray *)userTypingStatusList;
@end