TMain

TMain

SDK功能类,SDK的主要功能入口

Classes

TMain

Members

(static) instance

返回该类实例

Methods

(static) registerComponent(name, component)

注册组件

Parameters:
Name Type Description
name string

组件名称

component

组件对象

getSystemInfo()

收集系统信息用于异常上报,该接口耗时较长(可能长达10秒以上),必须异步处理

getAppClientRect() → {DOMRect}

获取应用客户区矩形

Returns:

应用客户区矩形

Type
DOMRect

loadComponent(name, layout, parentDomId, label) → {Promise.<(HTMLElement|null)>}

加载组件

Parameters:
Name Type Default Description
name string

组件名称

layout TComponentLayout

初始布局

parentDomId string

父节点 ID

label string default

标识

Returns:

HTML元素

Type
Promise.<(HTMLElement|null)>

updateComponent(name, layout, label)

更新组件

Parameters:
Name Type Default Description
name

组件名

layout

布局

label default

标识

Returns:

Promise 更新是否成功

removeComponent(name, label)

移除组件

Parameters:
Name Type Default Description
name

组件名称

label default

标识

Returns:

移除组件是否成功

getComponent(name, label)

获取组件

Parameters:
Name Type Default Description
name

组件名称

label default

标识

getComponentLayout(name, label)

获取组件布局

Parameters:
Name Type Default Description
name

组件名称

label default

标识

getComponentClientRect(name, label) → {DOMRect}

获取组件客户区矩形

Parameters:
Name Type Default Description
name

组件名称

label default

标识

Returns:

组件客户区矩形

Type
DOMRect

isComponentVisible(name, label) → {boolean}

检查组件是否可见状态

Parameters:
Name Type Default Description
name string

组件名称

label string default

标识

Returns:

组件是否处于可见状态

Type
boolean

toggleComponentDraggable(name, label, draggable, domSelector, draggableRect)

启用或关闭组件DOM节点的拖动功能

Parameters:
Name Type Default Description
name string

组件名称

label string default

标识

draggable true

是否启用拖动

domSelector .drag-module-header__wrap

要启用拖动功能的DOM节点选择器

draggableRect null

可拖动区域,可传入矩形或函数,若传入函数类型,则每次用户拖动会调用该方法获取新的可拖动区域限制

addComponentEventListener(name, listener, label)

添加组件事件监听

Parameters:
Name Type Default Description
name string

组件名称

listener ComponentEventListener

事件监听器

label string default

标识

removeComponentEventListener(name, listener, label)

移除组件事件监听

Parameters:
Name Type Default Description
name string

组件名称

listener ComponentEventListener

事件监听器

label string default

标识

getSeriousErrorTimes()

获取严重错误发生次数

isFeatureAvailable(feature)

检查指定功能特性是否可用

Parameters:
Name Type Description
feature

init(customJS, customCSS)

初始化(Demo演示用)

Parameters:
Name Type Description
customJS

自定义 JS

customCSS

自定义 CSS

showErrorMsg(message, detail, title, report, buttons, callback)

显示异常通知

Parameters:
Name Type Default Description
message

消息内容

detail

异常详情

title

消息标题

report true

是否上报异常

buttons null

按钮列表

callback null

弹窗关闭回调

showMessageBox(title, message, buttons, callback, options, exceptionId)

展示弹窗通知。该方法向UI层发送一个 Show_Msg_Box 事件,弹窗如何展示取决于UI层实现。

Parameters:
Name Type Description
title

消息标题

message

消息内容

buttons

按钮列表

callback

弹窗关闭回调

options

可选项列表

exceptionId

异常ID

Returns:

msgID 弹窗ID

getCurMessageBoxId()

获取当前弹窗 ID

Returns:

msgID 弹窗 ID

closeMessageBox(msgBoxId)

关闭弹窗通知。该方法向UI层发送一个 Close_Msg_Box 事件,弹窗如何关闭取决于UI层实现。

Parameters:
Name Type Description
msgBoxId

弹窗 ID

ignoreBackPressed(flag)

忽略移动端返回按钮事件

Parameters:
Name Type Description
flag

是否忽略移动端返回按钮事件

initialize(boardInitParams)

初始化

Parameters:
Name Type Default Description
boardInitParams null

白板初始化参数,至少需要包含id字段,指定用于渲染白板的DOM节点

unInitialize()

结束课堂会话(离开课堂)

reloadClass()

刷新课堂

getPermissionList()

获取当前权限列表

Returns:

PermissionInfo[] 权限列表数组

initSubWindowSelf()

弹窗初始化

showSubWindow(url, name, params, callback)

弹出二级页面

Parameters:
Name Type Description
url

地址

name

名称

params

参数

callback

回调

closeSubWindowSelf()

关闭二级页面自己(由二级页面调用)

sendCustomMessage(message)

发送消息到Native

Parameters:
Name Type Description
message

消息内容

setWaterMarkParam(param)

设置水印参数

Parameters:
Name Type Description
param TSchoolWaterMark

水印参数

getWaterMarkParam()

获取水印参数

getVersion()

获取版本信息

Returns:

string 版本号

getClientInfo()

获取客户端信息

setEnv()

设置环境(内部接口)

Returns:

string 环境标识

setLng(lng)

设置语言 (内部接口)

Parameters:
Name Type Description
lng

语言 zh-CN或en

reportEvent(name, data, code, timestamp)

事件上报

Parameters:
Name Type Default Description
name

事件名称

data

事件参数

code 0

事件返回错误码

timestamp 0

事件开始时间戳

reportLog(action, message)

日志上报

Parameters:
Name Type Description
action

动作名称

message

消息内容

reportException(id, data)

异常上报

Parameters:
Name Type Description
id

异常id

data

异常数据

clearHandUpMemberList()

清空举手成员列表

updateMemberListFilter(filter)

更新成员列表过滤参数

Parameters:
Name Type Description
filter TMemberListFilter

过滤参数

getClassMemberList(filter)

获取成员列表

Parameters:
Name Type Description
filter TMemberListFilter

过滤参数

memberJoin(classId, platform, device, role, version) → {Promise.<TMemberJoinResult>}

加入课堂

Parameters:
Name Type Description
classId number

课堂 ID

platform number

平台

device number

设备类型

role number

角色

version string

版本号

Returns:

结果

Type
Promise.<TMemberJoinResult>

memberAction(action) → {Promise.<void>}

成员操作

Parameters:
Name Type Description
action TMemberActionParam

操作

Returns:

结果

Type
Promise.<void>

memberQuit(classId)

退出

Parameters:
Name Type Description
classId number

课堂 ID

getOnlineNumber()

在线数量

createDocument(document)

添加课件

Parameters:
Name Type Description
document TDocumentInfo

文档信息

deleteDocument(docId)

删除课件

Parameters:
Name Type Description
docId string

文档 ID

getDocumentInfo(docId)

查询课件

Parameters:
Name Type Description
docId string

文档 ID

getDocumentListInfo(docIds)

批量查询课件

Parameters:
Name Type Description
docIds Array.<string>

文档ID列表

getDocumentList(documentParam)

查询课件列表

Parameters:
Name Type Description
documentParam TGetDocumentListParam

查询参数

bindDocumentToClass(docId)

关联课件到课堂

Parameters:
Name Type Description
docId string

课件id

unbindDocumentToClass(docId)

取消关联课件到课堂

Parameters:
Name Type Description
docId string

课件id

uploadDocument(file, schoolId, readyCallback, progressCallback, responseCallback)

上传课件

Parameters:
Name Type Description
file File

上传的文件

schoolId number

学校 ID

readyCallback TUploadReadyCallback

准备上传回调

progressCallback TUploadProgressCallback

进度回调

responseCallback TUploadResponseCallback

结果回调

cancelUploadDocument(taskId)

取消上传课件

Parameters:
Name Type Description
taskId string

任务 ID

getClassMessageData()

获取公开课历史消息

getClassInfo()

查询课堂详情

getUid()

查询自定义userId

getCid()

查询自定义classId

startClass()

开始上课

endClass()

停止上课

leaveClass()

请求退出课堂。该方法向UI层发送一个 Leave_Class 事件,由UI层自行决定如何处理该请求。

silenceAll(silence)

全体禁言

Parameters:
Name Type Description
silence

是否禁言

setEnableStage(enable)

开/关 请求上麦逻辑

Parameters:
Name Type Description
enable

true : 开启; false:关闭

Returns:

sendCommand(req)

发送命令

Parameters:
Name Type Description
req TCommandReq

请求

Returns:

getUserCommand()

获取用户的命令及其状态

Returns:

getAllCommand(cmd)

获取命令对应的全部数据

Parameters:
Name Type Description
cmd
Returns:

approveToStage(param)

学生直播课上台

Parameters:
Name Type Description
param any

待传参数

Returns:

hangupToStage(param)

Parameters:
Name Type Description
param any

待传参数

Returns:

muteAll(mute)

全员静音

Parameters:
Name Type Description
mute

是否静音

muteVideoAll(mute)

全员视频

Parameters:
Name Type Description
mute

是否关闭视频

revokeMessage(messageSeq)

撤回消息,仅老师可以撤回

Parameters:
Name Type Description
messageSeq number

消息 Seq

setClassLayout(layout)

Parameters:
Name Type Description
layout TClassLayout

课堂布局

getClassLayout() → {TClassLayout}

Returns:

layout 课堂布局

Type
TClassLayout

getSchoolInfo()

查询学校信息

getUserInfo(userId)

获取用户信息

Parameters:
Name Type Description
userId string

用户 ID

Returns:

Promise

getUserList(userIds)

获取多个用户信息

Parameters:
Name Type Description
userIds Array.<string>

用户列表

modifyUserProfile(userInfo)

修改用户信息

Parameters:
Name Type Description
userInfo number

用户信息

updateTask(taskId, content, duration, createOnly, bindingUser) → {Promise.<TTaskInfo>}

更新课堂任务

Parameters:
Name Type Default Description
taskId string

任务 ID

content string

任务内容

duration number

任务持续时长,单位秒。-1表示不限时长。默认为-1

createOnly boolean false

是否仅新建任务,如果任务已存在则失败

bindingUser string

生命周期绑定用户,如果用户离线则任务自动失效。默认为空字符串表示不绑定用户

Returns:
Type
Promise.<TTaskInfo>

stopTask(taskId) → {Promise.<TTaskInfo>}

停止课堂任务

Parameters:
Name Type Description
taskId string

任务 ID

Returns:
Type
Promise.<TTaskInfo>

getTasks(seq) → {Promise.<TGetTaskListResult>}

查询课堂任务

Parameters:
Name Type Description
seq number

开始的seq,返回大于seq的任务列表。最小值为0,默认为0

Returns:
Type
Promise.<TGetTaskListResult>

getServerTimestamp() → {number}

获取近似的当前服务器时间

Returns:

服务器毫秒级时间

Type
number

createQuestion(question)

创建提问

Parameters:
Name Type Description
question TCreateQuestionParam

问题参数

answerQuestion(answer)

回答提问

Parameters:
Name Type Description
answer TAnswerQuestionParam

答案

stopQuestion(questionId)

停止答题

Parameters:
Name Type Description
questionId string

问题ID

abandonQuestion(questionId)

取消答题

Parameters:
Name Type Description
questionId string

问题ID

closeQuestion(questionId)

关闭答题

Parameters:
Name Type Description
questionId string

问题ID

getQuestionInfo(questionId)

获取提问信息

Parameters:
Name Type Description
questionId string

问题ID

getQuestionResult(questionId)

获取提问结果

Parameters:
Name Type Description
questionId string

问题ID

getQuestions()

获取问题列表

getMyQuestions()

获取个人问题列表

getQuestionStats(questionId)

获取提问统计信息

Parameters:
Name Type Description
questionId string

问题ID

checkSystemRequirements()

检测当前系统环境

setLocalVideoParams(option)

设置本地视频参数

Parameters:
Name Type Description
option

本地视频参数

setVideoEncodeQuality(userId, highDefinition)

设置用户的视频编码清晰度

Parameters:
Name Type Description
userId string

要设置的用户ID

highDefinition boolean

是否启用高清晰度模式,启用高清晰度模式后,视频推流码率会增加一个级别

针对当前用户,影响视频推流码率 针对远端用户,影响Web端码率估算精准度

startLocalVideo(dom)

开启本地视频采集及渲染

Parameters:
Name Type Description
dom

用于渲染视频画面的DOM节点

stopLocalVideo()

关闭本地视频采集及渲染

muteLocalVideo(mute)

控制是否屏蔽自己的视频画面,屏蔽后不推流

Parameters:
Name Type Description
mute

是否屏蔽

bindRemoteVideoDom(userId, type, dom, fullMode)

绑定远端视频画面DOM节点(有流则自动渲染)

Parameters:
Name Type Description
userId

要处理的用户ID

type

要处理的视频流类型

dom

用于渲染视频画面的DOM节点

fullMode

是否使用全屏模式渲染

unbindRemoteVideoDom(userId, type, sequence)

解绑远端视频画面DOM节点

Parameters:
Name Type Description
userId

要处理的用户ID

type

要处理的视频流类型

sequence

resetVideoRender(userId, type)

重置视频渲染

Parameters:
Name Type Description
userId

要处理的用户ID

type

要处理的视频流类型

snapshotVideo(userId, streamType)

视频截图

Parameters:
Name Type Description
userId

要处理的用户ID

streamType

要处理的视频流类型

startLocalAudio(dom)

开始本地音频采集

Parameters:
Name Type Description
dom

用于插入音频元素的DOM节点,只有Web端需要

stopLocalAudio()

停止本地音频采集

muteLocalAudio(mute)

控制是否屏蔽自己的声音

Parameters:
Name Type Description
mute

是否屏蔽

enableVolumeEvaluation(interval)

开启音量大小回调,回调直接通过事件抛出

Parameters:
Name Type Description
interval

回调间隔(最小100ms,0为关闭)

startCameraTest(dom)

开始摄像头设备测试

Parameters:
Name Type Description
dom

用于渲染摄像头画面的DOM节点

stopCameraTest()

停止摄像头设备测试

startMicTest(dom)

开始麦克风设备测试

Parameters:
Name Type Description
dom

用于插入音频元素的DOM节点,只有Web端需要

stopMicTest()

停止麦克风设备测试

startSpeakerTest(path)

开启扬声器设备测试

Parameters:
Name Type Description
path

要播放的声音文件路径

stopSpeakerTest()

停止扬声器设备测试

getCameras()

获取摄像头设备列表

switchCamera(deviceId)

切换使用的摄像头设备

Parameters:
Name Type Description
deviceId

要切换的设备ID

getCameraDeviceId()

获取正在使用的摄像头设备ID

getMics()

获取麦克风设备列表

switchMic(deviceId)

切换使用的麦克风设备

Parameters:
Name Type Description
deviceId

要切换的设备ID

getMicDeviceId()

获取正在使用的麦克风设备ID

setMicVolume(volume)

设置正在使用的麦克风设备音量

Parameters:
Name Type Description
volume

要设置的音量大小

getMicVolume()

获取正在使用的麦克风设备音量

getRealMicVolume()

获取正在使用的麦克风设备音量

getSpeakers()

获取扬声器设备列表

switchSpeaker(deviceId)

切换使用的扬声器设备

Parameters:
Name Type Description
deviceId

要切换的设备ID

getSpeakerDeviceId()

获取正在使用的扬声器设备ID

setSpeakerVolume(volume)

设置正在使用的扬声器设备音量

Parameters:
Name Type Description
volume

要设置的音量大小

getSpeakerVolume()

获取正在使用的扬声器设备音量

isScreenShareSupported()

检查当前平台是否支持屏幕分享

hasScreenCapturePermission()

检查屏幕分享权限

getScreenCaptureSources()

获取屏幕分享屏幕采集源列表

selectScreenCaptureTarget(sources, captureMouse, highlightWindow)

选择要进行屏幕分享的目标采集源

Parameters:
Name Type Default Description
sources

要分享的采集源

captureMouse true

是否捕获鼠标

highlightWindow true

是否高亮选择区域

getScreenCaptureTarget()

获取屏幕分享的目标采集源

addExcludedShareWindows()

将指定窗口加入屏幕分享的排除列表中

startScreenShare(dom)

开始屏幕分享

Parameters:
Name Type Description
dom

用于渲染分享画面的DOM节点,不需要渲染可以忽略

pauseScreenShare()

暂停屏幕分享

resumeScreenShare()

恢复屏幕分享

stopScreenShare()

停止屏幕分享

enableSystemAudioLoopback(enable)

控制是否分享系统声音

Parameters:
Name Type Description
enable

是否分享

startMusic()

播放背景音乐

stopMusic()

停止背景音乐

pauseMusic()

暂停背景音乐

resumeMusic()

恢复背景音乐

getMusicDuration()

获取音乐时长,单位毫秒

seekMusic()

设置背景音乐进度

setMusicVolume()

设置背景音乐的音量大小

loadVideo()

加载视频

playVideo()

开始播放视频

pauseVideo()

暂停播放视频

seekVideo()

视频进度跳转

setVideoVolume()

设置音量大小

stopVideo()

结束播放视频

startSubCamera()

打开辅助摄像头

stopSubCamera()

关闭辅助摄像头

sendGroupCustomMessage(ext, data) → {Promise.<TIMMsg>}

发送群组自定义消息

Parameters:
Name Type Description
ext string

扩展标识

data string

内容

Returns:

返回结果

Type
Promise.<TIMMsg>

sendGroupTextMessage(text) → {Promise.<TIMMsg>}

发送群组文本消息

Parameters:
Name Type Description
text string

文本消息

Returns:

返回结果

Type
Promise.<TIMMsg>

sendGroupImgMessage(fileName) → {Promise.<TIMMsg>}

发送群组图片消息

Parameters:
Name Type Description
fileName File

文本消息

Returns:

返回结果

Type
Promise.<TIMMsg>

sendC2CTextMessage(userId, text) → {Promise.<TIMMsg>}

发送C2C文本消息

Parameters:
Name Type Description
userId string

用户 ID

text string

文本内容

Returns:

返回结果

Type
Promise.<TIMMsg>

sendC2CCustomMessage(userId, ext, data) → {Promise.<TIMMsg>}

发送C2C自定义消息

Parameters:
Name Type Description
userId string

用户ID

ext string

扩展标识

data string

内容

Returns:

返回结果

Type
Promise.<TIMMsg>

getMessageList(count, nextMsgId)

拉取消息列表

Parameters:
Name Type Default Description
count

消息数量

nextMsgId null

起始消息id

markMessageAsRead(msgSeq)

标记指定消息为已读消息

Parameters:
Name Type Description
msgSeq

消息序列号

markAllMessagesAsRead()

标记所有消息为已读消息

getBoard()

获取白板实例

notify(event, message, report)

消息广播(仅当前窗口收到)

Parameters:
Name Type Default Description
event string

事件名称

message *
report true

是否上报事件

emit(event, message)

广播消息(主窗口和弹窗均可收到)

Parameters:
Name Type Description
event string

事件名称

message *

消息内容

on(event, listener, options)

事件监听

Parameters:
Name Type Description
event

事件

listener

回调

options

监听选项

Returns:

是否成功

off(event, listener, options)

移除事件回调

Parameters:
Name Type Description
event

事件名称

listener

回调

options

监听选项

one(event, listener, options)

一次性事件监听

Parameters:
Name Type Description
event

事件名称

listener

回调

options

监听选项

Returns:

是否成功

registerState(name, desc, value, validCallers)

注册状态

Parameters:
Name Type Default Description
name

状态名称

desc

状态说明,必须传入长度>=4的字符串

value null

状态初始值

validCallers

状态可写者数组

setState(name, value, caller, log)

更新状态

Parameters:
Name Type Default Description
name

状态名称

value

状态内容

caller

状态更新者

log true

是否打印日志

getState(name, defaultValue)

读取状态

Parameters:
Name Type Description
name

状态名称

defaultValue

默认返回值(组件未注册时返回)

subscribeState(name, listener, options)

订阅状态变更

Parameters:
Name Type Description
name

状态名称

listener

状态更新回调

options

状态监听选项

unsubscribeState(name, listener, options)

取消状态订阅

Parameters:
Name Type Description
name

状态名称

listener

状态更新回调

options

状态监听选项

promiseState(name, exceptValue, equalFunc)

确认状态值符合预期

Parameters:
Name Type Description
name

状态名称

exceptValue

预期的状态值

equalFunc

状态值比较函数,默认使用 === 进行比较

supportTouch() → {boolean}

是否支持触摸事件

Returns:
Type
boolean

isElectron() → {boolean}

是否Electron端

Returns:
Type
boolean

isWeb()

是否Web端,含所有设备上使用浏览器载入的场景

isAndroid() → {boolean}

是否Android端,含Native和Web加载两种场景

Returns:
Type
boolean

isIOS() → {boolean}

是否iOS端,含Native和Web加载两种场景

Returns:
Type
boolean

getIOSVersion() → {Array.<string>}

获取IOS版本号

Returns:
Type
Array.<string>

isPad() → {boolean}

是否大屏(平板或电视),含Native和Web加载两种场景

Returns:
Type
boolean

isMac() → {boolean}

是否Mac端,含Native和Web加载两种场景

Returns:
Type
boolean

isWindows() → {boolean}

是否Windows端,含Native和Web加载两种场景

Returns:
Type
boolean

isMobile() → {boolean}

是否移动端,含Native和Web加载两种场景

Returns:
Type
boolean

isMobileNative() → {boolean}

是否Native移动端

Returns:
Type
boolean

isMiniprogram() → {boolean}

是否小程序

Returns:
Type
boolean

initParams(query)

初始化缓存参数

Parameters:
Name Type Description
query string

&符号分割的参数列表(URL内的query串格式),若未传该参数,取当前页面URL的query串

getParams(key, defValue)

获取参数

Parameters:
Name Type Description
key

参数名称

defValue

默认值

setParams(key, value)

设置参数

Parameters:
Name Type Description
key

参数名称

value

参数值

isSubWindow() → {boolean}

是否是子窗口

Returns:
Type
boolean

minimizeWindow()

窗口最小化或还原(只在桌面端有效)

maximizeWindow()

窗口最大化或还原(只在桌面端有效)

getLanguage() → {string}

获取当前UI语言类型

Returns:

语言类型

Type
string

getUserId() → {string}

获取当前用户 ID

Returns:

用户 ID

Type
string

isTeacher() → {boolean}

判断是否是老师

Returns:
Type
boolean

isSupervisor() → {boolean}

判断是否巡课

Returns:
Type
boolean

isAssistant() → {boolean}

判断是否助教

Returns:
Type
boolean

isLiveClass()

判断是否直播课

isInteractClass()

判断是互动班课

isCollegeClass()

判断是大教学课堂

openBrowser(url)

打开外部浏览器

Parameters:
Name Type Description
url string

网页地址

setDeviceOrientation(orientation)

设置设备方向

Parameters:
Name Type Description
orientation TDeviceOrientation

设备方向

checkNetworkConnection() → {boolean}

检查网络链接情况

Returns:
Type
boolean

checkBusinessServerConnection() → {Promise.<number>}

检查 aPaaS 服务器链接情况

Returns:

< 0 表示链接错误,> 0 表示链接成功的耗时

Type
Promise.<number>

checkNetworkPermission() → {Promise.<boolean>}

检查网络权限

Returns:
Type
Promise.<boolean>

checkMediaServerConnection() → {Promise.<number>}

检查 TRTC 服务器链接情况

Returns:

< 0 表示链接错误,> 0 表示链接成功的耗时

Type
Promise.<number>

getNetworkQuality() → {Promise.<TNetworkQuality>}

网络质量的判断方法

Returns:
Type
Promise.<TNetworkQuality>

getApiNetworkQuality() → {Promise.<TNetworkQuality>}

API网络接口质量

Returns:
Type
Promise.<TNetworkQuality>

checkDNSParsing() → {Promise.<number>}

检查DNS解析情况

Returns:

< 0 表示解析错误,> 0 表示解析成功的耗时

Type
Promise.<number>

_addClassVisibleChangeListener()

添加课堂可见性监听

_removeClassVisibleChangeListener()

移除课堂可见性监听

_onClassVisibleChange()

页面可见性变化通知

_updateClassInfo()

更新课堂信息