一、接入方式
方式一:URL 唤起方式二:SDK 集成
使用浏览器或 Web 页面通过自定义协议(Scheme)唤起本地客户端。
二、浏览器直接唤起
1. 下载客户端:前往 Demo 下载及体验 下载并安装 Windows 或 Mac 客户端(旗舰版支持定制 OEM 包)。
2. 唤起链接:当浏览器访问以下 URL 时,将自动请求打开客户端:
参数可以参考 Web 及 H5 快速接入 的参数说明。
tcic://${选用一个合适的课堂站点域名从下方表格}/latest/class.html?classid=${classId}&userid=${userId}&token=${token}
三、课堂站点域名
请根据用户所在地域及实际情况,选用一个合适的课堂站点域名,供用户访问。拼接到上述的课堂进房链接中。
| 域名 | 服务器地域 | 说明 |
| class.qcloudclass.com | 中国大陆(全球加速) | 中国大陆用户及全球不确定位置用户选用。 |
| www.tencentclass.com | 新加坡(全球加速) | 非中国大陆用户首选访问,海外主体独立域名且纯海外原生部署,性能优化,全球可用性高。 |
四、中转页唤起(最佳实践)
建议业务侧实现一个“中转页”,通过集成 ElectronProtocolCheck.js 优化用户体验:自动检测客户端是否安装,成功则直接唤起,失败则引导下载,或降级至 Web 版课堂。
集成步骤:
1. 下载检测库:下载 ElectronProtocolCheck.js 并引入项目。
2. 实现唤起逻辑:在中转页中获取上课参数(classId, userId, token),调用检测函数。
示例代码:
// 引入检测库 (代码实现参考 GitHub 示例)import ElectronProtocolCheck from './ElectronProtocolCheck';// 1. 准备入参const classId = 123456;const userId = "JIUzI1NiIsIn123456";// 注意:Token 需从后台动态获取,避免过期const token = 'yJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…'; // 2. 拼接唤起 URLconst url = `tcic://${选用一个合适的课堂站点域名从上方表格}/latest/class.html?classid=${classId}&userid=${userId}&token=${token}`;console.log(`callClient->start: ${url}`);// 3. 执行唤起与回调处理ElectronProtocolCheck( url, () => { // 成功回调:客户端已唤起 console.log('callClient->success!'); }, () => { // 失败回调:未检测到客户端 console.log('callClient->failed!'); // 建议逻辑:弹出提示窗口,引导用户下载客户端 // 若用户取消下载,可降级跳转至 Web/H5 版本课堂 }, () => { // 不支持回调:浏览器环境不支持自定义协议 // 建议逻辑:直接加载 Web 版课堂链接 });
将互动课堂嵌入到你现有的 Electron 应用中。我们提供了 Electron Demo 供参考。
五、环境要求
请确保你的开发环境满足以下基础库版本:
| 开发框架 | 版本要求 |
| Node.js | 16.14.2 |
六、安装 SDK
在项目根目录下执行 npm 命令安装 SDK:
npm install tcic-electron-sdk@latest
注意:说明:
注意:最新版本信息请查看 npm: tcic-electron-sdk。
七、初始化与进课
引入模块并调用初始化接口,传入鉴权参数即可调起课堂窗口。
请根据用户所在地域及实际情况,选用一个合适的课堂站点域名,供用户访问。拼接到上述的课堂进房链接中。
| 域名 | 服务器地域 | 说明 |
| class.qcloudclass.com | 中国大陆(全球加速) | 中国大陆用户及全球不确定位置用户选用。 |
| www.tencentclass.com | 新加坡(全球加速) | 非中国大陆用户首选访问,海外主体独立域名且纯海外原生部署,性能优化,全球可用性高。 |
const TCIC = require('tcic-electron-sdk');TCIC.initialize({ // 核心鉴权参数 classId: '368507569', userId: '123456', token: 'yJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…', // 务必动态获取 // 可选:完整 URL (若提供,优先级高于 classId 等参数) url: 'https://${选用一个合适的课堂站点域名从上方表格}/latest/class.html?classid=xxxx&userid=xxx', // 可选:自定义参数 (透传至 Web 端) customParams: { key: 'value' }, // 可选:业务标识 sign: 'your_signature', cid: 'customer_id', uid: 'user_uid', // 生命周期回调 onReady() { console.log('课堂窗口正在拉起'); }, afterInit() { console.log('SDK 初始化完成'); }, onClose() { console.log('所有课堂窗口已关闭'); }});
八、1. OEM 定制打包
若你需要拥有独立品牌(Logo、应用名称)的客户端,并希望快速集成现有业务系统,可申请使用“OEM 定制打包”服务。
九、接入流程
1. 准备资料发送给腾讯云(商务或者产品经理),或通过 联系我们 加入微信群申请。
注意:说明:
注意:仅支持已购买旗舰版的客户申请。
| 字段 | 说明 |
| 公司名称 | 你所在的公司名称。 |
| 腾讯云账号 UIN | 腾讯云账号 ID。在腾讯云 账号信息 查看“账号ID”。 |
| 应用 ID | 你创建的应用 ID。可参考 接入准备 创建并获取应用 ID。 |
| AppName | App 名称。例如:XX 课堂。 |
| Logo | 应用图标。规格:256 × 256格式:ico/png。 |
| URL | 业务入口 URL。客户端启动后默认加载的页面地址。业务 URL 必须具备自动处理登录态的能力(或自动跳转至登录页)。请勿直接配置为登录页,以免用户每次打开客户端都需要重新登录。 |
在接收到资料后,并确认无误的情况下我们将会在1个工作日完成打包。
2. 业务逻辑适配:
在打包后,业务侧可通过 window.joinClass 方法进入课堂 ,若之前业务侧已通过 URL 或 SDK 集成方式实现进课逻辑,可参考以下示例进行兼容。
const options = { classId: '368507569', userId: '123456', token: '…'};// 检测是否在定制客户端环境中if (window.joinClass) { // 调用定制客户端的进课方法 window.joinClass(options);} else { // 原有的 Web/SDK 进课逻辑}// 退出客户端逻辑// window.closeWin();
十、2. 自定义 UI 集成
支持开发者自定义课中布局及样式。通过注入 JS 和 CSS,你可以修改界面元素。
十一、调试阶段
在开发调试阶段,可通过 URL 参数 debugjs 和 debugcss 注入本地或远程的资源文件。
·URL 拼接方式:
tcic://…?classid=…&debugjs=http://localhost:443/myLib.js&debugcss=http://localhost:443/myLib.css
·SDK 集成方式:
TCIC.initialize({ // …其他参数 debugjs: 'http://localhost:443/demo/dist/myLib.umd.min.js', debugcss: 'http://localhost:443/demo/dist/myLib.css',})
十二、开发
详细的自定义 JS 开发方式可参考 Web 内核定制指南。
十三、生产发布
调试完成后,请勿继续使用 debug 参数。请通过以下任意方式将自定义资源绑定到“场景”中:
1. 方式一:使用云 API SetAppCustomContent。
2. 方式二:前往 控制台 > 应用管理 > 应用配置 > 场景配置进行绑定。
进课堂时,只需在 URL 或 SDK 参数中指定 scene 参数,即可加载对应的 UI 布局。