开放平台
首页平台概述
开发者
  • API文档
  • SDK
产品功能
  • 新手入门
  • 产品功能
常见问题
首页平台概述
开发者
  • API文档
  • SDK
产品功能
  • 新手入门
  • 产品功能
常见问题
  1. 互动工具
  • demo
  • JS SDK
    • 产品介绍
    • 快速接入
    • SDK 对接示例
    • 观看直播
    • 暖场视频
    • 房间消息说明
    • 互动连麦
    • 文档白板
    • 全局事件
    • 全局错误码
    • 版本更新记录
    • 互动工具
      • 互动-抽奖
      • 互动-礼物
      • 互动-签到
      • 互动-问卷
      • 互动-公告
      • 互动-商品
      • 互动-问答
      • 互动-推屏卡片
      • 互动-快问快答
      • 互动-聊天
      • 互动-优惠券
      • 互动-点赞
    • 直播间拓展功能
      • 资料下载
      • 观看限制验证
      • 观看协议
      • 回放章节
  • 点播SDK
    • 点播上传SDK
    • 更新记录
  • iOS SDK
    • 整体介绍
    • 快速接入
    • SDK 登录
    • 暖场视频
    • 视频轮询
    • 直播彩排
    • 高级美颜
    • 云导播
    • 观看协议
    • 文档白板演示
    • 聊天功能
    • 视频直播
      • 发起视频直播
      • 观看视频直播
    • 互动直播
      • 观众互动
      • 推流摄像头
      • 互动直播API
      • 主播发起互动直播
      • 嘉宾加入互动直播
    • 无延迟直播
      • 主播发起无延迟直播
      • 观众观看无延迟直播
    • 互动工具
      • 互动-抽奖
      • 互动-礼物
      • 互动-签到
      • 互动-问卷
      • 互动-章节打点
      • 互动-公告
      • 互动-商品
      • 互动-计时器
      • 互动-问答
      • 互动-推屏卡片
      • 互动-快问快答
      • 互动-优惠券
      • 互动-点赞
    • 直播间拓展能力
      • 直播间特色功能配置项
      • 文件下载
      • 修改角色昵称
      • 观看权限校验
      • 投屏
      • 虚拟人数
    • 观看回放
      • 观看回放
    • 防录屏
      • 跑马灯
    • 字段说明
      • 互动活动详情字段
      • 错误码说明
      • 常量定义
      • 活动详情字段说明
    • 版本更新说明
      • 版本更新信息
      • v2.3.0 到 v2.4.0 升级说明
      • v3.0.1 到 v3.2.0 升级说明
      • V2.9.0到v3.0.1升级说明
      • v6.3.0
      • v6.2.1
      • v3.2.0 到 v4.0.1
      • v2.7.0 到 v2.8.0、v2.9.0 升级说明
      • 6.5.0
      • v5.0.x 到 v6.0.0
      • v6.4.0
  • Adroid SDK
    • 整体介绍
    • 快速接入
    • SDK登录
    • 暖场视频
    • 视频轮巡功能
    • 直播彩排
    • 高级美颜
    • 云导播功能
    • 观看协议
    • 文档白板
    • 聊天功能
    • 房间消息
    • 信息采集说明
    • 视频直播
      • 发起视频直播
      • 观看视频直播
    • 互动直播
      • 互动直播API
      • 主播发起互动直播
      • 嘉宾加入互动直播
      • 观众观看互动直播
    • 无延迟直播
      • 主播发起无延迟直播
      • 观众观看无延迟直播
    • 互动工具
      • 互动-抽奖
      • 互动-礼物
      • 互动-签到
      • 互动-问卷
      • 互动-公告
      • 互动-商品
      • 互动-计时器
      • 互动-问答
      • 互动-推屏卡片
      • 互动-快问快答
      • 互动-优惠券
      • 互动-点赞
    • 直播拓展功能
      • 修改角色名称
      • 文件下载
      • 投屏演示
      • 虚拟人数
      • 观看权限校验
      • 直播间特色功能配置项
    • 观看回放
      • 观看回放/点播
    • 防录屏
      • 直播水印
      • 跑马灯
    • 字段说明
      • 房间消息字段说明
      • 聊天消息字段说明
      • 活动详情字段说明
    • 版本更新说明
      • 更新记录
      • v6.4.0
      • v6.3.0
      • v6.2.3
      • v6.2.1
      • v6.2.0
      • v6.1.0
      • v6.0.0
      • v5.0.0
      • v4.1.0
      • v4.0.0
      • v3.3.0
  • APP嵌入支付说明
    • 支付调起说明
    • Scheme规则说明
  1. 互动工具

互动-快问快答

提供直播间内的可视化问答式互动能力,在直播间进行随堂测验,完成【出题 → 快速答题 → 即时得分 → 得分排行榜】的全过程,增强直播间的内容传递效果

核心类#

类名类描述
VHExamObject快问快答类

VHExamObject 关键方法#

方法方法描述
examUserFormCheckWithWebinar_id答题前置条件检查
examGetUserFormInfoWithWebinar_id初始化用户表单
examSendVerifyCodeWithWebinar_id发送验证码
examVerifyCodeWithWebinar_id验证手机验证码
examSaveUserFormWithWebinar_id保存用户表单信息
examGetPushedPaperListWithWebinar_id获取场次已推送试卷列表
examGetPaperInfoForWatchWithWebinar_id获取试卷详情
examAnswerQuestionWithWebinar_id单题提交
examInitiativeSubmitPaperWithWebinar_id主动交卷
examGetUserAnswerPaperHistoryWithWebinar_id获取已答题记录断点续答
examGetSimpleRankListWithWebinar_id获取榜单信息
examPersonScoreInfoWithWebinar_id获取个人成绩

VHExamObjectDelegate 关于快问快答的代理方法#

方法方法描述
paperSendMessage推送快问快答
paperEndMessage收卷
paperSendRankMessage公布成绩
paperAutoEndMessage自动收卷
paperAutoEendRankMessage自动公布成绩

答题前置条件检查#

方法 API
- (void)examUserFormCheckWithWebinar_id:(NSString *)webinar_id user_name:(NSString *)user_name head_img:(NSString *)head_img mobile:(NSString *)mobile complete:(void(^)(VHExamUserFormCheckModel * examUserFormCheckModel ,NSError * error))complete;
方法入参
参数名称是否必须示例备注
webinar_id是123456789活动 ID
user_name是阿超用户名
head_img是https://xxx.png头像
mobile是132xxxxxxx手机号
complete是返回数据完成回调
VHExamUserFormCheckModel 参数详解
参数名称备注
is_answer是否已答题 0.否 1.是
is_fill是否需要填写表单 0.否 1.是
方法示例
[self.examObject examUserFormCheckWithWebinar_id:self.webinar_id user_name:@"" head_img:@"" mobile:@"" complete:^(VHExamUserFormCheckModel *examUserFormCheckModel, NSError *error) {
    if (examUserFormCheckModel) {
        VH_ShowToast([examUserFormCheckModel.responseObject mj_JSONString]);
    }
    if (error) {
        VH_ShowToast(error.localizedDescription);
    }

}];

初始化用户表单#

方法 API
- (void)examGetUserFormInfoWithWebinar_id:(NSString *)webinar_id paper_id:(NSString *)paper_id complete:(void(^)(VHExamGetUserFormInfoModel * examGetUserFormInfoModel ,NSError * error))complete;
方法入参
参数名称是否必须示例备注
webinar_id是123456789活动 ID
paper_id是123456试卷 ID
complete是返回数据完成回调
VHExamGetUserFormInfoModel 参数详解
参数名称备注
form_data表单信息
title试卷标题
user_info用户填写信息
guidelines答题须知
extension拓展
方法示例
[self.examObject examGetUserFormInfoWithWebinar_id:self.webinar_id paper_id:self.paperIDTF.text complete:^(VHExamGetUserFormInfoModel *examGetUserFormInfoModel, NSError *error) {
    if (examGetUserFormInfoModel) {
        VH_ShowToast([examGetUserFormInfoModel.responseObject mj_JSONString]);
        self.user_detail = examGetUserFormInfoModel.form_data;
    }
    if (error) {
        VH_ShowToast(error.localizedDescription);
    }
}];

发送验证码#

方法 API
- (void)examSendVerifyCodeWithWebinar_id:(NSString *)webinar_id paper_id:(NSString *)paper_id phone:(NSString *)phone country_code:(NSString *)country_code complete:(void(^)(VHExamSendVerifyCodeModel * examSendVerifyCodeModel ,NSError * error))complete;
方法入参
参数名称是否必须示例备注
webinar_id是123456789活动 ID
paper_id是123456试卷 ID
phone是132xxxxxxxx手机号码
country_code否CN国家码默认 CN
complete是返回数据完成回调
VHExamSendVerifyCodeModel 参数详解
参数名称备注
status1 成功/0 失败
方法示例
[self.examObject examSendVerifyCodeWithWebinar_id:self.webinar_id paper_id:self.paperIDTF.text phone:self.phoneTF.text country_code:@"" complete:^(VHExamSendVerifyCodeModel *examSendVerifyCodeModel, NSError *error) {
    if (examSendVerifyCodeModel) {
        VH_ShowToast([examSendVerifyCodeModel.responseObject mj_JSONString]);
    }
    if (error) {
        VH_ShowToast(error.localizedDescription);
    }
}];

保存用户表单信息#

方法 API
- (void)examVerifyCodeWithWebinar_id:(NSString *)webinar_id paper_id:(NSString *)paper_id phone:(NSString *)phone verify_code:(NSString *)verify_code country_code:(NSString *)country_code complete:(void(^)(VHExamVerifyCodeModel * examVerifyCodeModel ,NSError * error))complete;
方法入参
参数名称是否必须示例备注
webinar_id是123456789活动 ID
paper_id是123456试卷 ID
phone是132xxxxxxxx手机号码
verify_code是sad122验证码
country_code否CN国家码默认 CN
complete是返回数据完成回调
VHExamVerifyCodeModel 参数详解
参数名称备注
status1 成功/0 失败
方法示例
[self.examObject examVerifyCodeWithWebinar_id:self.webinar_id paper_id:self.paperIDTF.text phone:self.phoneTF.text verify_code:self.verifyCodeTF.text country_code:@"" complete:^(VHExamVerifyCodeModel * examVerifyCodeModel, NSError *error) {
    if (examVerifyCodeModel) {
        VH_ShowToast([examVerifyCodeModel.responseObject mj_JSONString]);
    }
    if (error) {
        VH_ShowToast(error.localizedDescription);
    }
}];

保存用户表单信息#

方法 API
- (void)examSaveUserFormWithWebinar_id:(NSString *)webinar_id user_detail:(NSString *)user_detail verify_code:(NSString *)verify_code complete:(void(^)(NSDictionary * responseObject ,NSError * error))complete;
方法入参
参数名称是否必须示例备注
webinar_id是123456789活动 ID
user_detail是{"16130":"分享","16131":"A"}用户提交 表单 json
verify_code是sad122验证码
complete是返回数据完成回调
方法示例
[self.examObject examSaveUserFormWithWebinar_id:self.webinar_id user_detail:self.user_detail verify_code:self.verifyCodeTF.text complete:^(NSDictionary * responseObject, NSError *  error) {
    if (responseObject) {
        VH_ShowToast([responseObject mj_JSONString]);
    }
    if (error) {
        VH_ShowToast(error.localizedDescription);
    }
}];

获取场次已推送试卷列表#

方法 API
- (void)examGetPushedPaperListWithWebinar_id:(NSString *)webinar_id switch_id:(NSString *)switch_id complete:(void(^)(NSArray <VHExamGetPushedPaperListModel *> *examGetPushedPaperList ,NSError * error))complete;
方法入参
参数名称是否必须示例备注
webinar_id是123456789活动 ID
switch_id是123456场次 id
complete是返回数据完成回调
VHExamGetPushedPaperListModel 参数详解
参数名称备注
paper_id试卷 id
title试卷标题
push_time推送时间
limit_time_switch限时开关
status是否作答 0.否 1.是
is_end答题是否结束 0.否 1.是
right_rate正确率
limit_time限时
total_score试卷总分
question_num题目数
paperUrl试卷观看地址
方法示例
[self.examObject examGetPushedPaperListWithWebinar_id:self.webinarInfoData.webinar.data_id switch_id:self.webinarInfoData.data_switch.switch_id complete:^(NSArray<VHExamGetPushedPaperListModel *> *examGetPushedPaperList, NSError *error) {
    // 暂时每次清理
    [self.dataSource removeAllObjects];
    // 添加数据
    [self.dataSource addObjectsFromArray:examGetPushedPaperList];
    // 刷新数据
    [self.tableView reloadData];
}];

获取试卷详情#

方法 API
- (void)examGetPaperInfoForWatchWithWebinar_id:(NSString *)webinar_id paper_id:(NSString *)paper_id complete:(void(^)(VHExamGetPaperInfoForWatchModel * examGetPaperInfoForWatchModel ,NSError * error))complete;
方法入参
参数名称是否必须示例备注
webinar_id是123456789活动 ID
paper_id是123456试卷 ID
complete是返回数据完成回调
VHExamGetPaperInfoForWatchModel 参数详解
参数名称备注
title试卷标题
push_time推送时间
question_detail详情
limit_time_switch限时开关
limit_time限时
方法示例
[self.examObject examGetPaperInfoForWatchWithWebinar_id:self.webinar_id paper_id:self.paperIDTF.text complete:^(VHExamGetPaperInfoForWatchModel *examGetPaperInfoForWatchModel, NSError *error) {
    if (examGetPaperInfoForWatchModel) {
        VH_ShowToast([examGetPaperInfoForWatchModel.responseObject mj_JSONString]);
    }
    if (error) {
        VH_ShowToast(error.localizedDescription);
    }
}];

单题提交#

方法 API
- (void)examAnswerQuestionWithWebinar_id:(NSString *)webinar_id paper_id:(NSString *)paper_id question_id:(NSString *)question_id user_answer:(NSString *)user_answer complete:(void(^)(NSDictionary *responseObject ,NSError * error))complete;
方法入参
参数名称是否必须示例备注
webinar_id是123456789活动 ID
paper_id是123456试卷 ID
question_id是123题目 ID
user_answer是答案字符串用户答案
complete是完成回调
方法示例
[self.examObject examAnswerQuestionWithWebinar_id:self.webinar_id paper_id:self.paperIDTF.text question_id:self.questionIDTF.text user_answer:self.userAnswerTF.text complete:^(NSDictionary * responseObject, NSError *  error) {
    if (responseObject) {
        VH_ShowToast([responseObject mj_JSONString]);
    }
    if (error) {
        VH_ShowToast(error.localizedDescription);
    }
}];

主动交卷#

方法 API
- (void)examInitiativeSubmitPaperWithWebinar_id:(NSString *)webinar_id paper_id:(NSString *)paper_id complete:(void(^)(NSDictionary *responseObject ,NSError * error))complete;
方法入参
参数名称是否必须示例备注
webinar_id是123456789活动 ID
paper_id是123456试卷 ID
complete是返回数据完成回调
方法示例
[self.examObject examInitiativeSubmitPaperWithWebinar_id:self.webinar_id paper_id:self.paperIDTF.text complete:^(NSDictionary *responseObject, NSError *error) {
    if (responseObject) {
        VH_ShowToast([responseObject mj_JSONString]);
    }
    if (error) {
        VH_ShowToast(error.localizedDescription);
    }
}];

获取已答题记录断点续答#

方法 API
- (void)examGetUserAnswerPaperHistoryWithWebinar_id:(NSString *)webinar_id paper_id:(NSString *)paper_id complete:(void(^)(NSArray <VHExamGetUserAnswerPaperHistoryModel *> *examGetUserAnswerPaperHistoryList ,NSError * error))complete;
方法入参
参数名称是否必须示例备注
webinar_id是123456789活动 ID
paper_id是123456试卷 ID
complete是返回数据完成回调
VHExamGetUserAnswerPaperHistoryModel 参数详解
参数名称备注
question_id题目 id
answer答案
方法示例
[self.examObject examGetUserAnswerPaperHistoryWithWebinar_id:self.webinar_id paper_id:self.paperIDTF.text complete:^(NSArray<VHExamGetUserAnswerPaperHistoryModel *> *examGetUserAnswerPaperHistoryList, NSError *error) {
    if (examGetUserAnswerPaperHistoryList.count > 0) {
    }
    if (error) {
        VH_ShowToast(error.localizedDescription);
    }
}];

获取榜单信息#

方法 API
- (void)examGetSimpleRankListWithWebinar_id:(NSString *)webinar_id paper_id:(NSString *)paper_id pageNum:(NSInteger)pageNum pageSize:(NSInteger)pageSize complete:(void(^)(NSArray <VHExamGetSimpleRankListModel *> *examGetSimpleRankList ,NSError * error))complete;
方法入参
参数名称是否必须示例备注
webinar_id是1234566789活动 ID
paper_id是123试卷 ID
pageNum是1第几页
pageSize是10每页数量
complete是返回数据完成回调
VHExamGetSimpleRankListModel 参数详解
参数名称备注
name用户名
head_img头像
score得分
rank_no排名
right_rate正确率
account_id参会 id
status是否有效 0.否 1.是
is_initiative是否主动交卷 0.否 1.是
use_time用时 秒
方法示例
[self.examObject examGetSimpleRankListWithWebinar_id:self.webinar_id paper_id:self.paperIDTF.text pageNum:1 pageSize:20 complete:^(NSArray<VHExamGetSimpleRankListModel *> *examGetSimpleRankList, NSError *error) {
    if (examGetSimpleRankList.count > 0) {
    }
    if (error) {
        VH_ShowToast(error.localizedDescription);
    }
}];

获取个人成绩#

方法 API
- (void)examPersonScoreInfoWithWebinar_id:(NSString *)webinar_id paper_id:(NSString *)paper_id complete:(void(^)(VHExamPersonScoreInfoModel *examPersonScoreInfoModel ,NSError * error))complete;
方法入参
参数名称是否必须示例备注
webinar_id是123456789活动 ID
paper_id是123456试卷 ID
complete是返回数据完成回调
VHExamPersonScoreInfoModel 参数详解
参数名称备注
account_id账户 id
title试卷标题
user_info用户填写信息
head_img头像地址
user_form表单信息
question_detail用户答题数据
is_initiative是否主动交卷 0.否 1.是
right_rate正确率
error_num错误数
rank个人排名 ,0 为无成绩
unanswer_num未作答数
use_time用时秒
score得分
right_num正确数
方法示例
[self.examObject examPersonScoreInfoWithWebinar_id:self.webinar_id paper_id:self.paperIDTF.text complete:^(VHExamPersonScoreInfoModel *examPersonScoreInfoModel, NSError *error) {
    if (examPersonScoreInfoModel) {
        VH_ShowToast([examPersonScoreInfoModel.responseObject mj_JSONString]);
    }
    if (error) {
        VH_ShowToast(error.localizedDescription);
    }
}];

推送快问快答#

方法 API
- (void)paperSendMessage:(VHMessage *)message examWebUrl:(NSURL *)examWebUrl;
参数详解
参数名称备注
message消息详情
examWebURL快问快答的嵌入页地址

收卷#

方法 API
- (void)paperEndMessage:(VHMessage *)message examWebUrl:(NSURL *)examWebUrl;
参数详解
参数名称备注
message消息详情
examWebURL快问快答的嵌入页地址

公布成绩#

方法 API
- (void)paperSendRankMessage:(VHMessage *)message examWebUrl:(NSURL *)examWebUrl;
参数详解
参数名称备注
message消息详情
examWebURL快问快答的嵌入页地址

自动收卷#

方法 API
- (void)paperAutoEndMessage:(VHMessage *)message examWebUrl:(NSURL *)examWebUrl;
参数详解
参数名称备注
message消息详情
examWebURL快问快答的嵌入页地址

自动公布成绩#

方法 API
- (void)paperAutoEendRankMessage:(VHMessage *)message examWebUrl:(NSURL *)examWebUrl;
参数详解
参数名称备注
message消息详情
examWebURL快问快答的嵌入页地址
修改于 2025-05-27 11:59:31
上一页
互动-推屏卡片
下一页
互动-优惠券
Built with