这篇档将指导你如何在 iOS 项目中快速接入腾讯云互动课堂 SDK。
注意:说明:
注意:阅读这篇前,你可以先了解 移动端原生内核与 Web 内核的区别。
一、开发环境要求
·IDE:Xcode 14 及以上版本
·系统要求:iOS 11.0 及以上
二、集成步骤
按照以下步骤,你可以快速在 iOS 项目中集成并跑通互动课堂。完整示例代码可参考 Demo。
三、步骤一:安装依赖
在项目的 Podfile 中添加 SDK 依赖:
# framework 使用静态集成use_frameworks! :linkage => :staticpod 'tcic_ios', :podspec => 'https://ios.qcloudclass.com/${latest}/tcic_ios.podspec'
注意:说明:
注意:
四、步骤二:权限配置
教学场景通常需要使用音视频互动和屏幕共享功能。请在项目的 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() { // 初始化 SDK TCICManager.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)
七、步骤五:配置课堂参数
通过 接入准备 拿到关键参数。在进入课堂前,需构建 TCICConfig 对象并传入必要参数。
let headerConfig = TCICHeaderComponentConfig()let messageConfig = TCICMessageComponentConfig()// 示例:配置自定义头部左侧视图// headerConfig.headerLeftBuilder = headerLeftBuilderlet config = TCICConfig( token: "YOUR_TOKEN", // 通过云 API 获取的 token classId: "YOUR_CLASS_ID", // 课堂 ID userId: "YOUR_USER_ID", // 用户 ID role: 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 = headerLeftBuilder headerConfig.headerLeftBuilderWidth = 200 headerConfig.headerLeftBuilderHeight = 40 let 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)}