快速开始
前提条件
- Xcode 13.0 或以上版本(本文 Xcode 的界面描述以 Xcode 14.0 为例)
- iOS 9.0 或以上版本的真机设备
- iOS SDK支持模拟器调试(v6.15及以上版本)
运行demo
解压Quanshi-iOS-MeetingSdk.zip,找到sample文件,打开TangClientSample的工程文件。 我们建议在 iOS 真机中运行TangClientSample项目。
相关文档在demo文件夹同一层目录(见下图)
Demo工程目录如下图所示:
集成SDK
创建项目
打开 Xcode 并点击 Create a new Xcode project。
选择平台类型为 iOS、项目类型为 Single View App,并点击 Next。
输入项目名称(Product Name)、开发团队信息(Team)、组织名称(Organization Name)和语言(Language)等项目信息,并点击 Next。
选择项目存储路径,并点击 Create。
设置最低版本及证书。
如果是Xcode11创建的新项目需要删除UISceneSession相关代码
获取SDK
- SDK接口以IOS下标准的framework的形式提供,并提供接口定义C头文件。
- demo中Framework在目录
frameworks
目录下
文件目录说明
文件名 | 说明 | 必选 |
---|---|---|
AudioEngineCore.framework AVTangModule.framework FlowCtrl.framework GNetTangSDK.xcframework GNetTangSDKIOSDesktop.framework qsnd.framework TwirlingCapture.framework |
平台业务基础库 | 必选 |
TangClientSDK.xcframework | 云会议SDK | 是 |
CocoaLumberjack.framework | 会中LogSDK | 是 |
NIMSDK.framework | 消息模块SDK | 是 |
tc_default.bundle | 会中资源文件 | 是(v6.15及以上版本,可选)) |
TangClientSDK.framework.dSYM | 会中符号化文件 | 否 |
- 删除info.plist中的Application Scene Manifest 配置项
- 删除Appdelegate中UISceneSession的相关代码,并在 AppDelegate 中 添加如下代码
#import "ViewController.h"
@property (strong, nonatomic) UIWindow *window;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
self.window.backgroundColor = UIColor.whiteColor;
self.window.rootViewController = ViewController.new;
[self.window makeKeyAndVisible];
return YES;
}
导入SDK
导入步骤
- 找到SDK解压后文件夹里的framework文件夹,拖入新建的项目中,勾选Copy items if needed 。
- 打开 Xcode,进入 TARGETS > Project Name > General > Frameworks, Libraries, and Embedded Content菜单。
将 Embed 属性设置为 Embed & Sign,项目会自动链接所需系统库。
- 在target-> info ->custom ios target propertys 添加 App Transport Security Settings ->Allow Arbitrary Loads = YES
- 点击Build Settings 搜索bitcode,设置Enable Bitcode 属性为NO
- 如果是Xcode 12.3+ 进入 TARGETS > Project Name > BuildSettings > Validate WorkSpace > YES
- 相关权限设置添加
申请系统权限
NSCameraUsageDescription 您可以共享视频给其他参会人 NSContactsUsageDescription 您可以邀请手机通讯录的联系人入会 NSLocationWhenInUseUsageDescription 如果不允许,您将无法使用定位" NSMicrophoneUsageDescription 您可以使用网络语音入会 NSPhotoLibraryAddUsageDescription 此 App 需要您的同意才能为您添加图片
实现功能
设置log日志路径
+(void)initLogPath:(nonnull NSString*)logPath;
// 日志路径设置方法,放在sdk所有类调用之前设置。包括一些配置项设置之前
NSString *logPath = [NSString stringWithFormat:@"%@/%@",NSHomeDirectory(),@"Documents/MyLogs/"];
[TangClientInterface initLogPath:logPath];
初始化
- +(instancetype )sharedTangClientInterface;
-(void)initEnvironment:(Environment )environment;
/// 调用示例
[[TangClientInterface
sharedTangClientInterface]initEnvironment:Environment_beta];
- 初始化云会议系统的环境,默认为:Online 如果需要切换到Beta环境,请调⽤此API
- 加入会议,参数TangClientInterfaceObject,其中name和pcode必传,详细请参见:TangClientInterfaceObject
-(void)joinConfrenceWithReq:(TangClientInterfaceObject*) req completion:(void (^)(BOOL success, NSError *error))completion;
- 自定义
/// 控制会议报告提示的显示 /// 默认开;Deafult: YES /// @property (nonatomic, assign) BOOL showMeetingReportTips; /// /// 控制入会自动连接VOIP语音提示的显示 /// 默认开;Deafult: YES /// @property (nonatomic, assign) BOOL showVoipAutoSwitchTips; /// /// 控制主持人退会时转移主持人提示的显示 /// 默认关;Deafult: NO /// @property (nonatomic, assign) BOOL showLeaveMeetingTransferHostTips; /// /// 主持人是否显示锁定会场 /// 该开关默认为显示;Deafult: YES /// @property (nonatomic, assign) BOOL isShowLock; /// 调用示例 TangClientSDKConfig *config = [TangClientSDKConfig new]; config.showMeetingReportTips= NO; config.showVoipAutoSwitchTips= NO; config.isShowLock = NO; [[TangClientSDKManager shareInstance] setCustomConfig:config];
运行结果
入会配置页面
输入会议昵称name和会议密码pcode(必传信息),若没有pcode,请联系客服获取相关会议密码
如果需要使用链接入会,请先打开
使用链接入会
开关
入会预览页面
预览页面可以打开关闭摄像头,翻转前后摄像头,开启关闭入会语音等操作
会中页面
可以设置会议相关的会议控制,如静音,共享,查看参会列表,举手,退会等等操作