dby-1vn-js-sdk
使用文档
通过多贝云dby-1vn-js-sdk, 你可以和教室进行数据交互。 (以下内容中,dby-1vn-js-sdk 将简称 SDK)
安装
npm i dby-1vn-js-sdk
导入
import DBYCourseSDK from 'dby-1vn-js-sdk'
创建实例
const sdk = new DBYCourseSDK(targetWindow)
targetWindow
加载多贝云教室网页的iframe元素
可以不传,默认值为 document.querySelector('iframe')
APIs
onReady
sdk.onReady( func )
:
用来注册 SDK 可用之后的回调,参数 func
的类型是 function
当 SDK 可用之后,SDK 会调用 func
getCoursePlayProgress
sdk.getCoursePlayProgress()
:
用来主动获取课程播放进度的接口
返回值为一个Promise, resolve以下结构的对象
参数名 | 说明 |
---|---|
currentTime | 课程当前播放的时间点 |
totalTime | 课程的总时长 |
// 方式一
sdk.getCoursePlayProgress().then((result) => {
console.log('dby-js-sdk: getCoursePlayProgress', result)
})
// 方式二
async() => {
const result = await sdk.getCoursePlayProgress()
console.log('dby-js-sdk: getCoursePlayProgress', result)
}
完整代码
import DBYCourseSDK from 'dby-1vn-js-sdk'
// 页面加载完成后运行
const sdk = new DBYCourseSDK(targetWindow)
sdk.onReady(() => {
console.log('dby-js-sdk: onReady')
setInterval(async() => {
const result = await sdk.getCoursePlayProgress()
console.log('dby-js-sdk: getCoursePlayProgress', result) // {currentTime: 1114, totalTime: 8054}
}, 5000)
})
setTarget
sdk.setTarget(iframeElem)
:
用来重置加载课程的iframeElem
属性
version
sdk.version
,版本号。
isReady
sdk.isReady
,值由false
变为true
时会运行onReady
注册的回调函数。
debugMode
默认值为false
设置为true
,sdk.debugMode = true
,可以在控制台输出更多调试信息。
Q&A
Uncaught TypeError: sdk.onReady is not a function
异常
1. 这类异常发生前通常会在控制台输出: dby-js-sdk: Unsupported arg: iframe elem needed in setTarget
产生原因:
- 实例化sdk时,构造函数没有传入参数且页面中无法获取到iframe元素,无法获取到iframe元素的原因可能是实例化时机太早,iframe未加载
- 实例化sdk时,构造函数传入了非法参数,参数不是iframe元素
修复方法:
调用sdk.setTarget(iframeElem)
, 传入加载多贝云教室网页的iframe元素
开发者文档
运行&调试
-
编辑
pc-1vn-js-sdk/test/test-pc-1vn-js-sdk.html
中的iframe src 属性为多贝云教室进教室链接 -
在本项目目录下运行
npm run start
发布
在本项目目录下运行npm run release
更新历史
2020.04.01 发布 1.0.0
支持onReady
、 getCoursePlayProgress
、 setTarget
API