Web版本
<script type='text/javascript' src='https://wwwr.plaso.cn/static/sdk/annotate/5.00/js/plasoAPI/annotateSDK.js'></script>
new AnnotateSDK(config, apiList);
参数名 | 参数类型 | 是否必填 | 说明 |
---|---|---|---|
url | string | 是 | 批注页面url,拼接方式请查阅 这里 |
multiOutput | bool | 否 | 是否返回多个结果(一张图片对应一个结果), 默认值为false |
// apiList API汇总
var apiList = {
// 用于批改页面获取待批改的图片,图片需要配置跨域访问
getInitImageList: function() {
return ['https://download.plaso.cn/static/sdk/websdkdemo/imgs/zuoye_demo1.jpeg',
'https://download.plaso.cn/static/sdk/websdkdemo/imgs/zuoye_demo2.jpeg',
'https://download.plaso.cn/static/sdk/websdkdemo/imgs/zuoye_demo3.jpg'];
},
// 发送作业所需的query,会在点击发送按钮的时候被批改页面调用
getSendQuery: function() {
/*
* beginTime:时间戳(秒) 签名生效的开始时间
* validTime:签名的有效时长,单位是秒
* signature:签名
*/
//生成签名示例
var params = {
appId: 'demo',
exerciseId: zyId,
beginTime: parseInt(Date.now() / 1000),
validTime: 3600
}
var query = genQuery(params);
var signature = sign(query);
return `${query}&signature=${signature}`;
},
// 发送完成后,批改页面会调用此方法,让使用者可以保存作业的关键信息,使用者保存完成后需要返回true或者Promise.resolve()
saveResult: function(result) {
// result = {
// recordId: 5d6492469e95d05722159626, //伯索生成的作业记录的id,在播放作业的时候用到,使用者可以配合exerciseId作一一对应来存放
// accuracy: 0.5, // 正确率
// grade: 0, // ['努力', '过关', '不错', '良好', '优秀'],返回的数字和数组下标对应
// }
// 注意!!!: 如果为多结果输出,则result格式为数组,数据元素格式同上,即 result=[{},{},{}]
if (!(result instanceof Array)) {
result = [result];
}
for (var i = 0; i < result.length; i++) {
// 播放
console.log("https://wwwr.plaso.cn/static/sdk/annotate/5.00/?" + this.getWeikeQuery(result[i].recordId))
}
return Promise.resolve();
},
// 点击批改页面‘录制微课’会调用此方法,获取录制微课的地址
getWeikeUrl: function() {
/**
* appId:应用标识(必填)
* meetingType:会议标识,mini代表制作微课(必填)
* meetingId: 微课id,唯一标识该微课;使用ASSIIC字符,不得包含/,\,空格等(必填)
* userType:speaker,填写此参数会进入多页模式,否则是单页模式(非必填)
* userName:会议登录的用户名(必填)
* autoClose:1,填写此参数会在点击完成时自动关闭录制页面(非必填)
* beginTime:时间戳(秒) 签名生效的开始时间
* validTime:签名的有效时长,单位是秒
* signature:签名
*/
var params = {
appId: 'demo',
meetingType: 'mini',
meetingId: '1234',
userType: 'speaker',
userName: 'hello',
autoClose: 1,
beginTime: parseInt(Date.now() / 1000),
validTime: 3600
}
var query = genQuery(params);
var signature = sign(query);
return `https://www.plaso.cn/liveclass/recorder/?${query}&signature=${signature}`;
},
// 点击批改页面‘引用收藏’会调用此方法,获取已收藏的微课列表
getFavoriteList: function() {
//单个微课格式
// {
// myid, 必须,(使用录制微课sdk页面录制完成时生成的recordId)
// name, 必须
// url, 可选,封面
// duration, 必须, 时长
// size,可选,文件大小,单位B
// }
return [];
},
// 播放作业里的微课时会调用此方法
getWeikeQuery: function(recordId) {
/**
* appType:player,表示调用微课播放器(必填)
* appId:应用标识(必填)
* recordId:伯索生成的微课ID(必填)
* withoutC:true,true表示播放器不显示关闭按钮(非必填)
* beginTime:时间戳(秒) 签名生效的开始时间
* validTime:签名的有效时长,单位是秒
* signature:签名
*/
var params = {
appType: 'annotateSDKPlayer',
appId: 'demo',
recordId: recordId,
withoutC: true,
beginTime: parseInt(Date.now() / 1000),
validTime: 3600
}
var query = genQuery(params);
var signature = sign(query);
return `${query}&signature=${signature}`;
}
}
url一定要使用https协议,前缀为: https://wwwr.plaso.cn/static/sdk/annotate/5.00/? 后跟参数,使用 & 符号拼接, 示例: https://wwwr.plaso.cn/static/sdk/annotate/5.00/?appType=annotateSDK&appId=plaso-sdk-demo-id&exerciseId=abcd1234
参数名 | 参数类型 | 是否必填 | 说明 |
---|---|---|---|
appType | string | 是 | 固定值 annotateSDK ,不能变更。 |
appId | string | 是 | 由伯索分配的开发者账号id。 |
exerciseId | string | 是 | 一份作业的唯一标识,由使用者生成。 |
apiList中的getSendQuery里需要的生成签名,请参考 签名加密 |
需要参与签名的业务参数有:
参数名 | 说明 |
---|---|
exerciseId | 客户自己生成的唯一作业id。 |
beginTime | 签名起效时间, Unix epoch格式,单位秒。 |

修改于 2025-03-20 06:43:53