腾讯云互动白板Mac-教育服务解决方案
集成 SDK
本文主要介绍如何快速的将腾讯云 TEduBoard SDK 集成到您的项目中。如果您使用互动课堂方案,请前往 互动课堂集成。
开发环境
Xcode 9.0+OS X 10.10+ 的 Mac 真机项目已配置有效的开发者签名
集成 TEduBoard SDK
您可以选择使用 CocoaPods 自动加载的方式,或者先下载 SDK 再将其导入到您当前的工程项目中。由于TEduBoard SDK 内部使用 IMSDK 作为内部信令通道,您还需 CocoaPods 或手动添加 IMSDK 依赖项。
CocoaPods
1. 安装 CocoaPods
在终端窗口中输入如下命令(需要提前在 Mac 中安装 Ruby 环境):
sudo gem install cocoapods
2. 创建 Podfile 文件
进入项目所在路径,输入以下命令行之后项目路径下会出现一个 Podfile 文件。
pod init
3. 编辑 Podfile 文件
编辑 Podfile 文件,支持选择版本号
platform :macos, '10.11'
target 'TICDemo_Mac' do # pod 'TEduBoard_Mac',:podspec=>'https://sdk.qcloudtiw.com/mac/prod/2.8.9.204/TEduBoard_Mac.podspec' pod 'TEduBoard_Mac', '>=2.8.9.204' pod 'TXIMSDK_Plus_Mac', '6.2.2363' pod 'YYModel'end
互动白板默认使用 IMSDK 作为信令通道,如果您有独立的信令通道,无需集成 IMSDK。
4. 更新并安装 SDK
在终端窗口中输入如下命令以更新本地库文件,并安装 TEduBoard SDK:
pod install
或使用以下命令更新本地库版本:
pod update
pod 命令执行完后,会生成集成了 SDK 的 .xcworkspace 后缀的工程文件,双击打开即可。
手动集成
1. 下载 TEduBoard SDK。2. 前往 即时通信 IM 下载 IMSDK。互动白板默认使用 IMSDK 作为信令通道,如果您有独立的信令通道,请跳过此步。3. 单击 Link Binary with Libraries 项展开,单击底下的“+”号图标去添加依赖库。
使用 TEduBoard SDK
1. #import
SDK在项目需要使用 SDK API 的文件里,引入具体的头文件:
#import
2. 创建白板控制器使用如下代码创建并初始化白板控制器:
// 创建并初始化白板控制器//(1)鉴权配置TEduBoardAuthParam *authParam = [[TEduBoardAuthParam alloc] init];authParam.sdkAppId = _sdkAppId;authParam.userId = _userId;authParam.userSig = _userSig;//(2)白板默认配置TEduBoardInitParam *initParam = [[TEduBoardInitParam alloc] init];_boardController = [[TEduBoardController alloc] initWithAuthParam:authParam roomId:_classId initParam:initParam];//(3)添加白板事件回调[_boardController addDelegate:self];
其中 _sdkAppId、_userId、_userSig、_classId 为需要您自己填写的参数。3. 白板窗口获取及显示在 onTEBInit
或 onTEBHistroyDataSyncCompleted
回调方法内,使用如下代码获取并显示白板视图。
- (void)onTEBHistroyDataSyncCompleted{ //(1)获取白板 NSView NSView *boardView = [_boardController getBoardRenderView]; //(2)设置显示位置和大小 boardView.frame = CGRectMake(0, 0, width, height); //(3)添加到父视图中 [self.view addSubview:boardView];}
注意1. onTEBInit 表示白板创建并鉴权完成。2. onTEBHistroyDataSyncCompleted 表示历史数据加载完成,此时可调用白板的相关接口。3. SDK 所有回调都在主线程内执行,因此可以在回调里直接执行 UI 操作。4. 监听白板关键事件在 onTEBError 和 onTEBWarning 回调方法内监听白板事件onTEBError 错误详情onTEBWarning 警告详情
// 监听白板错误事件- (void)onTEBError:(TEduBoardErrorCode)code msg:(NSString *)msg{
}
// 监听白板告警事件- (void)onTEBWarning:(TEduBoardWarningCode)code msg:(NSString *)msg{
}
5. 白板数据同步白板在使用过程中,需要在不同的用户之间进行数据同步(涂鸦数据等),SDK 默认使用 IMSDK 作为信令通道,您需要自行实现 IMSDK 的初始化、登录、加入群组操作,确保白板初始化时,IMSDK 已处于所指定的群组内。步骤1:初始化 IMSDK
V2TIMSDKConfig *config = [[V2TIMSDKConfig alloc] init];config.logLevel = V2TIM_LOG_WARN;[[V2TIMManager sharedInstance] initSDK:sdkAppID config:config];[[V2TIMManager sharedInstance] addIMSDKListener:listener];[[V2TIMManager sharedInstance] addAdvancedMsgListener:self];
**以上示例为 TIM V2 版本代码,IM的版本请尽量用新版本,具体请查阅IM的更新日志 https://cloud.tencent.com/document/product/269/1606如果您有其他业务使用了 IMSDK 并期望 IMSDK 的生命周期与 App 的生命周期保持一致,请在 AppDelegate 的 application:didFinishLaunchingWithOptions 方法中初始化 IMSDK,否则请在登录前初始化 IMSDK,在登出后反初始化 IMSDK。
步骤2:登录 IMSDK
[[V2TIMManager sharedInstance] login:userID userSig:userSig succ:^{ // 登录 IMSDK 成功} fail:^(int code, NSString *desc) { // 登录 IMSDK 失败}];
**以上示例为 TIM V2 版本代码,IM的版本请尽量用新版本,具体请查阅IM的更新日志 https://cloud.tencent.com/document/product/269/1606步骤3:加入群组登录 IMSDK 成功后加入白板所在的群组。
[[V2TIMManager sharedInstance] joinGroup:classId msg:nil succ:^{ // 加入 IM 群组成功} fail:^(int code, NSString *desc) { // 加入 IM 群组失败}];
**以上示例为 TIM V2 版本代码,IM的版本请尽量用新版本,具体请查阅IM的更新日志 https://cloud.tencent.com/document/product/269/1606如果 IM 群组不存在,请先创建群组。
V2TIMGroupInfo *groupInfo = [[V2TIMGroupInfo alloc] init];groupInfo.groupID = classId;groupInfo.groupName = classId;groupInfo.groupType = @"Public";groupInfo.groupAddOpt = V2TIM_GROUP_ADD_ANY;__weak typeof(self) ws = self;[[V2TIMManager sharedInstance] createGroup:groupInfo memberList:nil succ:^(NSString *groupID) { // 创建 IM 群组成功} fail:^(int code, NSString *desc) { // 创建 IM 群组失败}];
**以上示例为 TIM V2 版本代码,IM的版本请尽量用新版本,具体请查阅IM的更新日志 https://cloud.tencent.com/document/product/269/1606注意1. 推荐业务后台使用 IM REST API 提前创建群组。2. 不同的群组类型,群组功能以及成员数量有所区别,具体请查看 IM 群组系统。6. 销毁白板调用 unInit 方法后,内部将彻底销毁白板并停止计费,请您确保此接口的调用。
[_boardController unInit];
如果您使用 IMSDK 作为信令通道,请根据业务的需要决定是否退出群组、退出登录并反初始化。
步骤1:退出群组
[[V2TIMManager sharedInstance] quitGroup:classId succ:^{ // 登出 IMSDK 成功} fail:^(int code, NSString *desc) { // 登出 IMSDK 失败}];
**以上示例为 TIM V2 版本代码,IM的版本请尽量用新版本,具体请查阅IM的更新日志 https://cloud.tencent.com/document/product/269/1606步骤2:登出 IMSDK
[[V2TIMManager sharedInstance] logout:^{ // 登出 IMSDK 成功} fail:^(int code, NSString *desc) { // 登出 IMSDK 失败}];
**以上示例为 TIM V2 版本代码,IM的版本请尽量用新版本,具体请查阅IM的更新日志 https://cloud.tencent.com/document/product/269/1606步骤3:反初始化 IMSDK
[[V2TIMManager sharedInstance] removeIMSDKListener:self];[[V2TIMManager sharedInstance] removeAdvancedMsgListener:self];[[V2TIMManager sharedInstance] unInitSDK];
**以上示例为 TIM V2 版本代码,IM的版本请尽量用新版本,具体请查阅IM的更新日志 https://cloud.tencent.com/document/product/269/1606如果您有其他业务使用了 IMSDK 并期望 IMSDK 的生命周期与 App 的生命周期保持一致,无需调用此接口。
腾讯云官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠
发表评论