文档解析接入方式
客户端可以调用sdkClient.insertObject方法插入文件。insertObject方法接收fileObject结构的参数。如果外部文件的地址是非公开、需要签名的或是具有有效期的,还需要在interfaces中实现getExtFileName方法,当fileObject对象中有info属性时,sdkClient会调用getExitFileName(info)获取该文件临时的访问地址
调用示例
const interfaces = {
showResourceCenter: () => {// 显示自定义资料中心
this.showCloud = true;
},
/**@type {(info:Array<any>)=>Promise<string>} */
getExtFileName: (info) => {// 如果自定义资料中心调用了sdkClient.insertObject方法需要提供这个接口,用Promise返回一个可访问的可下载文件路径(公网地址)
console.log("getExtFileName");
console.log(info); //这个info就是sdkClient.insertObject(data)中data.info
return Promise.resolve(this.getUrl(info));
},
/**@type {(info:Array<Array, String>)=>Promise<Map>} */
getExtFileInfo: async (info, externalInfo) => {// 如果自定义资料中心调用了sdkClient.insertObject方法需要提供这个接口,用Promise返回一个可访问的可下载文件路径(公网地址)
console.log("getExtFileInfo");
var params = {
keyUrl: info[1]
}
if (externalInfo) {
params = {...params, ...externalInfo};
}
let {data: signature} = await ykdSignature(params);
return Promise.resolve({...params, ...signature.data});
}
}
fileObject结构
enum file_type { PPT,IMAGE, PDF, WORD, EXCEL, AUDIO, VIDEO }
interface fileObject{
type: file_type; // 文件类型
title: string; // 文件名称
url: string; // 文件的可下载地址
info: Array<any>; // 文件信息
}
:::highlight purple 💡
fileObject必须包含type属性,number类型,表示文件类型。目前支持PPT, IMAGE, PDF, WORD, EXCEL, AUDIO, VIDEO等类型。使用时请引用 PlasoStyleUpime.FILETYPE 里的宏定义对type属性进行赋值
:::
PlasoStyleUpime.FILETYPE = {
PPT, // 动态ppt
IMAGE, // 图片
PDF, // pdf
WORD, // doc
EXCEL, // xlsx/xls
AUDIO, // 音频
VIDEO // 视频
}
FILETYPE类型 | 使用描述 |
---|---|
IMAGE | url属性必须是可供下载图片的地址。title必须带有文件后缀名,否则会导致gif图片被当做jpeg图片插入 |
PDF/WORD/EXCEL | url属性必须是可供下载的pdf文件的地址,文件类型仅用来显示文件类型的图标 |
AUDIO/VIDEO | 可以设置url属性为长期有效的、公开的可以访问的音视频文件全路径,或者设置info属性为表示文件信息的数组,可以通过getExtFileName(info)可以获取文件有效路径 |
PPT | 可以设置url属性为可以下载的ppt文件的地址(仅限直播SDK) |
getExtFileName 传入表示文件信息的info数组,返回Promise,Promise的结果为文件地址。info数组的内容由使用机构自己定义,保证直播课堂的老师端/学生端、历史课堂、微课里都能调用getExtFileName(info)得到文件的有效路径
function getExtFileName(info: Array<any>) : Promise<string>;
资料中心
客户端在创建sdkClient时,通过interfaces参数传入showResourceCenter回调函数,实时课堂speaker/assitant角色界面、微课界面会增加“资料中心”按钮,点击工具栏的文件图标后显示。点击该按钮后会执行showResourceCenter回调函数。客户端可以在sdk界面上层显示资料中心窗口,当用户选择文件后,客户端再调用sdkClient.insertObject方法将资料中心的文件以fileObject的结构插入sdk