问卷

功能概述

本模块用于接收处理讲师、助教和管理员等用户的问卷操作,可以监听"开始问卷调查"和"问卷结果"等事件,以及进行观众端的提交答案操作。

初始化及销毁

在实例化该模块并进行使用之前,需要对SDK进行初始化配置,详细见参考文档

在线文件引入方式

<script src="https://websdk.videocc.net/interactions-receive-sdk/0.24.0/lib/polyv-ir.umd.js"></script>

<script>
    const { Questionnaire } = window.PolyvIRSDK;
</script>

import 方式引入(推荐)

import { Questionnaire } from '@polyv/interactions-receive-sdk';

const questionnaireSdk = new Questionnaire();
// 销毁 SDK 实例,清除逻辑
questionnaireSdk.destroy();

使用流程

监听“开始问卷调查”事件

收到此事件时,表示讲师端发起了一次问卷调查,消息参数中包含问卷详细内容,接入方可以使用其中的数据字段,将完整的问卷展示给观众。

questionnaireSdk.on(questionnaireSdk.events.START_QUESTIONNAIRE, (msg) => {
  console.log('收到问卷消息', msg);
});

提交用户答案

观众作答后,把答案作为字符串数组传入到 answerQuestion 方法中,就可以将答题提交到服务端。该方法是异步方法,返回具体的处理结果状态码,有提交成功、问卷已结束和已提交过答案这几种状态。可以根据该状态码提示用户该提交操作是否成功。通过 questionnaireSdk.answerQuestionResCode 能够访问到所有状态的枚举。

/**
   * 提交问卷
   * @param answers 提交问卷答案, 字符串数组如:
     [
        {"questionId":"bab16ae6ce", "answer": "A"},
        {"questionId":"4a9f9e3139", "answer": "AB"}
     ]
   * @param questionnaireId 问卷Id
   * @returns 状态码
*/
// 单选题答案格式 [{"questionId":"bab16ae6ce", "answer": "A"}]
// 多选题答案格式 [{"questionId":"4a9f9e3139", "answer": "AB"}]
// 判断题答案格式 [{"questionId":"4a9f9e3139", "answer": "A"}]
// 问答题答案格式 [{"questionId":"4a9f9e3139", "answer": "你好"}]
// 评星题(五星)答案格式 [{"questionId":"4a9f9e3139", "answer": "A"}] A 一颗星, B 两颗星, C 三颗星,D 四颗星, E 五颗星
// 评分题(10分)答案格式 [{"questionId":"4a9f9e3139", "answer": "A"}] A 一分, B 两分... 以此类推 J 10分
const res = await questionnaireSdk.answerQuestion(answers: string[], questionnaireId: string);{"questionId":"4a9f9e3139", "answer": "AB"}]);
if (res.code === questionnaireSdk.answerQuestionResCode.SubmitSuccess) {
  console.log('提交成功');
}

监听“结束问卷”事件

收到此事件时,问卷已经结束,观众不能再提交答案,需要将问卷隐藏。

questionnaireSdk.on(questionnaireSdk.events.STOP_QUESTIONNAIRE, (msg) => {
    console.log('收到问卷结束消息', msg);
});

监听“问卷结果”事件和“问卷统计”事件

如果当前问卷设置了得分题以及相应正确答案,而且有用户提交了个人的答案,那么当问卷结束后,讲师可以使用"发送结果"功能,以便于观众查看问卷答案及个人回答情况。 观众端展示问卷回答情况,可以监听这两个事件—— SEND_QUESTIONNAIRE_RESULTQUESTIONNAIRE_ACHIEVEMENT注意:这两个事件的触发顺序是不定的,若界面内容展示跟这两个事件都有关,请务必确保收到并记录到两个事件的数据后再做后续处理。

  • 问卷结果事件 本事件包含了问卷标题、题目列表及正确答案等详细信息,可以据此再次展示问卷。具体字段请参考 typedoc

questionnaireSdk.on(questionnaireSdk.events.SEND_QUESTIONNAIRE_RESULT, (msg) => {
  console.log('收到问卷结果事件:', msg);
});
  • 问卷统计事件 本事件包含了当前观众在此次问卷的题目统计数据和个人回答情况,可以据此展示问卷具体回答情况。具体字段请参考 typedoc

questionnaireSdk.on(questionnaireSdk.events.QUESTIONNAIRE_ACHIEVEMENT, (msg) => {
  console.log('收到问卷统计事件:', msg);
});

注意

如果不需要再使用问卷SDK时,请调用SDK实例的destroy方法去销毁实例。

Last updated