实时互动-教育版 Web 内核(Android)快速接入

这篇档旨在指导开发者快速将互动课堂(LCIC)Web 内核版 SDK 集成至 Android 项目中。

相关产品
实时互动-教育版 产品页,含版本规格、价格与购买入口。

注意:说明:

注意:阅读这篇前,你可以先了解 移动端原生内核与 Web 内核的区别。

一、开发环境要求

在开始集成前,请确保你的开发环境满足以下要求:

·开发工具:Android Studio 3.0 或更高版本。

·系统版本:Android 6.0(API Level 23)及以上。

三、步骤 1:导入 SDK

LCIC SDK 已发布至 Maven Central,建议通过 Gradle 进行远程集成。

请在应用模块(Module)的 build.gradle 文件中进行如下配置。

四、1. 添加依赖

在 dependencies 闭包中添加 SDK 依赖:

dependencies { // LCICSDK 组件 implementation 'com.tencent.edu:TCICSDK:1.8.32' }

五、2. 配置 CPU 架构

在 defaultConfig 闭包中指定支持的架构。

注意:说明:

注意:目前 SDK 支持 armeabi-v7a 和 arm64-v8a。你可以根据业务需求灵活配置,支持的架构越多,安装包体积越大。

defaultConfig { ndk { abiFilters "armeabi-v7a", "arm64-v8a" }}

六、3. 配置 Java 编译版本

在 compileOptions 闭包中,设置 JDK 版本为1.8:

compileOptions { sourceCompatibility 1.8 targetCompatibility 1.8}

七、4. 适配高版本 AGP

如果你的 Android Gradle Plugin (AGP) 版本大于4.2.0,请在 android 闭包中添加以下配置以避免打包错误:

android { packagingOptions { jniLibs { useLegacyPackaging true } }}

八、5. 同步项目

配置完成后,单击 Android Studio 右上角的 Sync Now,等待 SDK 下载并集成完成。

九、步骤 2:配置清单文件

在 AndroidManifest.xml 中声明 SDK 所需的权限:

<uses-permission android:name="android.permission.RECORD_AUDIO" /><uses-permission android:name="android.permission.CAMERA" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><application … <!– 注意:当 minSdkVersion ≥ 23 时,必须添加此属性 –> android:extractNativeLibs="true"> …</application>

十、步骤 3:配置混淆规则(可选)

如果你开启了代码混淆,请在 proguard-rules.pro 文件中添加以下规则,防止 LCIC SDK 核心类被混淆:

-keep class com.tencent.** { *; }

十一、步骤 4:申请 SDK 授权 (License)

App 开发需要获取以下两种 License:

十二、1. Web 引擎 License

·测试环境:请参考 申请 Web 引擎测试用 License,完成流程至第四部分获取 LicenseKey 即可。

·正式环境:购买旗舰版后,请通过 联系我们 加入微信群联系技术支持申请正式版 License。

十三、2. 播放器授权(仅“直播大班课”需要)

如果是“直播大班课”班型,需申请播放器权限。请按以下模板填写信息并提交 腾讯云工单,相关疑问可通过 联系我们 加入微信群了解。

注意:一个旗舰版仅支持授权一个正式包名,请确认信息无误。

参考模板提供信息:问题:实时互动-教育版申请播放器授权公司名称:联系方式:App Name:Package Name (Android):Bundle ID (iOS):

十四、步骤 5:初始化 Web 引擎

Web 引擎相较于系统 WebView 具有更好的兼容性和速度。

十五、1. 隐私合规检查

请务必在用户同意隐私政策协议之后,再调用初始化方法,以免违规收集个人信息导致应用上架失败。

十六、2. 执行初始化

初始化代码必须在主进程中执行,且只需调用一次。

// 判断是否为主进程if (TCICInitProvider.isMainProcess(context)) { // 初始化 Web 引擎 // licenseKey 获取方式请参考步骤 4 TCICManager.getInstance().initX5Core(licenseKey, new TBSSdkManageCallback() { @Override public void onCoreInitFinished() { // 内核初始化结束回调 } @Override public void onViewInitFinished(boolean isX5Core) { // Web 引擎初始化完成,此时可以进入课堂 Log.i("LCIC", "Web Engine Init Finished. Is X5 Core: " + isX5Core); } });}

十七、步骤 6:构建进房参数

请按照文档 接入准备 获取必要参数。

进入课堂需要构建 TCICClassConfig 对象。请通过以下方式获取所需参数:

十八、参数详情表

字段 类型 必填 含义 备注
schoolid int 是 应用 ID 在 接入准备 中创建的应用 ID (SdkAppId)。
userid long 是 课堂 ID 通过 RegisterUser 接口获取。
token string 是 用户 ID 通过 LoginUser 接口获取。
classid string 是 鉴权 Token 通过 CreateRoom 接口获取。
region string 否 服务器地域 默认值 cn,即访问中国大陆服务器节点. 支持值:cn:中国大陆。国内用户或全球不确定位置用户。sg:新加坡。全球非中国大陆用户。
scene string 否 场景名称 用于区分不同的定制布局,有两种配置方式:方式1:使用 SetAppCustomContent 接口配置。方式2:控制台 场景配置。
lng string 否 语言参数 界面语言设置。支持值:zh-CN:中文简体zh-TW:中文繁体en-US:英语ja:日语ko:韩语ar:阿拉伯语vi:越南语id:印尼语需配合 TCICWebViewManager.getInstance().setClassLanguage 使用。
camera int 否 开启摄像头 1:开启 (默认),0:关闭。
mic int 否 开启麦克风 1:开启 (默认),0:关闭。
speaker int 否 开启扬声器 1:开启 (默认),0:关闭。
groupLiveCode string 否 分组直播码 详见 分组直播。

十九、步骤 7:调起课堂页面

使用配置好的参数启动 TCICClassActivity 即可进入课堂。

// 1. 构建配置对象TCICClassConfig initConfig = new TCICClassConfig.Builder() .schoolId(schoolId) // 应用 ID .classId(classId) // 课堂 ID .userId(userId) // 用户 ID .token(token) // 鉴权 Token .build();// 2. 启动课堂 ActivityIntent intent = new Intent(getActivity(), TCICClassActivity.class);intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);Bundle bundle = new Bundle();bundle.putParcelable(TCICConstants.KEY_INIT_CONFIG, initConfig);intent.putExtras(bundle);startActivity(intent);

20、监听退出课堂

如果你需要感知用户退出课堂的事件,可以注册本地广播接收器:

IntentFilter intentFilter = new IntentFilter();intentFilter.addAction(TCICConstants.ON_CLASS_EXITED_ACTION);LocalBroadcastManager.getInstance(context).registerReceiver(broadcastReceiver, intentFilter);

21、推荐与资源

·异常监控:建议接入 腾讯 Bugly 以快速发现并解决线上异常,提升用户体验。

·示例代码:请参考 Android 开发 Demo。

·进阶功能:如需定制界面,请参考 Web 内核定制指南。

赞 (0)
上一篇 4天前
下一篇 4天前