本文档将指导您如何在 iOS 项目中快速接入腾讯云互动课堂 SDK。
说明:
开发环境要求
IDE:Xcode 14 及以上版本
系统要求:iOS 11.0 及以上
集成步骤
步骤一:安装依赖
在项目的
Podfile 中添加 SDK 依赖:# framework 使用静态集成use_frameworks! :linkage => :staticpod 'tcic_ios', :podspec => 'https://ios.qcloudclass.com/${latest}/tcic_ios.podspec'
说明:
如果没有
Podfile,请在项目根目录执行 pod init 生成。${latest} 版本号请参考 Demo Podfile(最新版本会同步更新至 Demo)。请在 Xcode 的 Build Settings 中将
User Script Sandboxing 设置为 No。

请务必使用真机进行调试,音视频等硬件相关插件在模拟器上无法正常运行。
步骤二:权限配置
教学场景通常需要使用音视频互动和屏幕共享功能。请在项目的
Info.plist 文件中添加以下权限描述:<!-- 相册权限 --><key>NSPhotoLibraryUsageDescription</key><string>Video calls require photo library permission.</string><!-- 相机权限 --><key>NSCameraUsageDescription</key><string>Video calls require camera permission.</string><!-- 麦克风权限 --><key>NSMicrophoneUsageDescription</key><string>Voice calls require microphone permission.</string><!-- 网络配置 --><key>NSAppTransportSecurity</key><dict><key>NSAllowsArbitraryLoads</key><true/></dict><!-- 后台模式 --><key>UIBackgroundModes</key><array><string>fetch</string><string>processing</string></array><!-- 屏幕录制扩展 --><key>com.apple.security.application-groups</key><array><string>group.com.tencent.comm.tcic.sharescreen</string></array>
步骤三:初始化 SDK
在应用启动或首次进入相关页面时,需要初始化 TCIC SDK。
import SwiftUIimport tcic_ios@mainstruct tcic_ios_simple_demoApp: App {init() {// 初始化 SDKTCICManager.shared.initialize()}var body: some Scene {WindowGroup {ContentView()}}}
步骤四:设置回调事件
通过设置回调,您可以监听课堂内的各类事件(如进退房、消息等)。全局只需设置一次。
@State private var callback: TCICCallback = TCICCallback() // 初始化回调事件self.callback.afterExitedClassBlock = {print("dismiss page")}self.callback.onJoinedClassFailedBlock = {print("joined class failed")}// 注册回调TCICManager.shared.setCallback(callback)
步骤五:配置课堂参数
let headerConfig = TCICHeaderComponentConfig()let messageConfig = TCICMessageComponentConfig()// 示例:配置自定义头部左侧视图// headerConfig.headerLeftBuilder = headerLeftBuilderlet config = TCICConfig(token: "YOUR_TOKEN", // 通过云 API 获取的 tokenclassId: "YOUR_CLASS_ID", // 课堂 IDuserId: "YOUR_USER_ID", // 用户 IDrole: 1, // 用户角色 (0: 学生, 1: 老师, 3: 助教, 4: 巡课)headerComponentConfig: headerConfig, // Header 组件配置messageComponentConfig: messageConfig // Message 组件配置// ... 其他自定义配置)TCICManager.shared.setConfig(config)
步骤六:进入课堂页面
在合适的时机(如按钮点击事件中)拉起课堂页面。以下为 SwiftUI 示例:
Button(action: {let headerLeftBuilder: TCICHeaderComponentConfig.HeaderBuilder = {return MyHeaderLeftView(messenger: TCICManager.shared.Tengine.binaryMessenger)}let headerConfig = TCICHeaderComponentConfig()let messageConfig = TCICMessageComponentConfig()headerConfig.headerLeftBuilder = headerLeftBuilderheaderConfig.headerLeftBuilderWidth = 200headerConfig.headerLeftBuilderHeight = 40let config = TCICConfig(token: "YOUR_TOKEN",classId: "YOUR_CLASS_ID",userId: "YOUR_USER_ID",role: 1,headerComponentConfig: headerConfig,messageComponentConfig: messageConfig)TCICManager.shared.setConfig(config)isActive = true}) {Text("打开互动课堂").frame(maxWidth: .infinity).padding().background(Color.blue).foregroundColor(.white).cornerRadius(8)}.padding(.horizontal).fullScreenCover(isPresented: $isActive, onDismiss: {TCICManager.shared.Tengine.viewController = nil}) {TCICManager.TPage().edgesIgnoringSafeArea(.all)}