跳到主要内容

输入状态

应用程序可以向超级群中发送当前用户输入状态。超级群内收到通知的用户可以在 UI 展示 “ xxx 正在输入”。

提示

为保证最佳体验,建议在仅在人数小于 10,000 的超级群中使用该功能。

发送输入状态

应用程序可以在当前用户输入文本时调用 sendUltraGroupTypingStatus,发送当前用户输入状态。

typedef NS_ENUM(NSUInteger, RCUltraGroupTypingStatus) {
/*!
正在输入文本
*/
RCUltraGroupTypingStatusText = 0,
}


- (void)sendUltraGroupTypingStatus:(NSString *)targetId
channleId:(NSString *)channelId
typingStatus:(RCUltraGroupTypingStatus)status
success:(void (^)(void))successBlock
error:(void (^)(RCErrorCode status))errorBlock

监听输入状态

为了减少服务端和客户端的压力,服务端会将一段时间内(例如 5 秒)用户输入事件汇总之后统一批量下发,所以回调以数组形式提供。应用程序收到通知时可以在 UI 展示 “ xxx 正在输入”。

@interface RCUltraGroupTypingStatusInfo : NSObject
/*!
会话 ID
*/
@property (nonatomic, copy) NSString *targetId;

/*!
所属会话的业务标识
*/
@property (nonatomic, copy) NSString *channelId;

/*!
用户id
*/
@property (nonatomic, copy) NSString *userId;

/*!
用户数
*/
@property (nonatomic, assign) NSInteger userNumbers;

/*!
输入状态
*/
@property (nonatomic, assign) RCUltraGroupTypingStatus status;

/*!
服务端收到用户操作的上行时间.
*/
@property (nonatomic, assign) long long timestamp;

@end

@protocol RCUltraGroupTypingStatusDelegate <NSObject>
/*!
用户输入状态变化的回调

@param infoArr 正在输入的RCUltraGroupTypingStatusInfo列表(nil 表示当前没有用户正在输入)

@discussion
当客户端收到用户输入状态的变化时,会回调此接口,通知发生变化的会话以及当前正在输入的RCUltraGroupTypingStatusInfo列表。
*/
- (void)onUltraGroupTypingStatusChanged:(NSArray<RCUltraGroupTypingStatusInfo*>*)infoArr;
@end

- (void)setRCUltraGroupTypingStatusDelegate:(id<RCUltraGroupTypingStatusDelegate>)delegate