快速开始

前提条件

  • 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

  1. SDK接口以IOS下标准的framework的形式提供,并提供接口定义C头文件。
  2. 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 会中符号化文件
  1. 删除info.plist中的Application Scene Manifest 配置项
  2. 删除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

导入步骤

  1. 找到SDK解压后文件夹里的framework文件夹,拖入新建的项目中,勾选Copy items if needed 。
  2. 打开 Xcode,进入 TARGETS > Project Name > General > Frameworks, Libraries, and Embedded Content菜单。

将 Embed 属性设置为 Embed & Sign,项目会自动链接所需系统库。

  1. 在target-> info ->custom ios target propertys 添加 App Transport Security Settings ->Allow Arbitrary Loads = YES
  2. 点击Build Settings 搜索bitcode,设置Enable Bitcode 属性为NO
  3. 如果是Xcode 12.3+ 进入 TARGETS > Project Name > BuildSettings > Validate WorkSpace > YES
  4. 相关权限设置添加

申请系统权限

NSCameraUsageDescription 您可以共享视频给其他参会人 NSContactsUsageDescription 您可以邀请手机通讯录的联系人入会 NSLocationWhenInUseUsageDescription 如果不允许,您将无法使用定位" NSMicrophoneUsageDescription 您可以使用网络语音入会 NSPhotoLibraryAddUsageDescription 此 App 需要您的同意才能为您添加图片

实现功能

设置log日志路径

    +(void)initLogPath:(nonnull NSString*)logPath;
    
    // 日志路径设置方法,放在sdk所有类调用之前设置。包括一些配置项设置之前
    NSString *logPath = [NSString stringWithFormat:@"%@/%@",NSHomeDirectory(),@"Documents/MyLogs/"];
    [TangClientInterface initLogPath:logPath];
    

初始化

  1. +(instancetype )sharedTangClientInterface;
    -(void)initEnvironment:(Environment )environment;
    /// 调用示例
    [[TangClientInterface
      sharedTangClientInterface]initEnvironment:Environment_beta];
    
  1. 初始化云会议系统的环境,默认为:Online 如果需要切换到Beta环境,请调⽤此API
  1. 加入会议,参数TangClientInterfaceObject,其中name和pcode必传,详细请参见:TangClientInterfaceObject
        -(void)joinConfrenceWithReq:(TangClientInterfaceObject*) req completion:(void (^)(BOOL success, NSError *error))completion;
    	
       
  2. 自定义
        /// 控制会议报告提示的显示
        /// 默认开;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,请联系客服获取相关会议密码

如果需要使用链接入会,请先打开 使用链接入会 开关

入会预览页面

预览页面可以打开关闭摄像头,翻转前后摄像头,开启关闭入会语音等操作

会中页面

可以设置会议相关的会议控制,如静音,共享,查看参会列表,举手,退会等等操作