智慧服务,成就美好体验 项目咨询

主页 > 服务与支持 > 开发平台 > 客户端SDK参考 > iOS UI SDK > 快速入门 快速入门

入门使用

快速入门

更新时间:2019-11-20

以实现登录企业云通信服务器并加入视频会议为例,介绍如何使用iOS SDK进行二次集成开发。

开发环境准备

在开发的过程中请满足如下环境要求。

表1 环境要求

环境和工具名称

版本要求

说明

操作系统

Mac OSX High Sierra 10.13.6及以上

-

Xcode

Xcode9.4.1及以上

其他IDE工具。

iOS系统版本

iOS9.0及以上,64位设备

-

会议云服务的用户帐号

-

帐号可来源于华为公有云。开通方法请参见“开发前准备”。

SDK快速集成

  1. 在Mac电脑上解压下载到的“CloudLinkMeeting_iOS_SDK.zip”软件包。
  2. 在本地创建名为“CloudLinkDemo”的文件夹,将软件包解压到此文件夹下,得到如下图所示5个framework和1个xml文件。分别为CloudLink_Meeting.framework、CloudLinkMeetingScreenShare.framework、config.xml、Cordova.framework、sqlite_plugin.framework、websockets.framework。

     

    图1 本地目录 

     

  3. 打开“Xcode”软件。
  4. 单击File>New>Project...,选择Single View App>Next,填写应用信息,选择已创建的CloudLinkMeetingDemo文件夹作为存储路径,选择“Create”完成新工程创建,具体步骤可参考下图。

     

    图2 选择创建新工程 
    图3 选择新工程模板为Single View App 
    图4 新建工程保存到CloudLinkMeetingDemo目录 

     

  5. 步骤1中解压得到的5个FrameWork和1个xml文件放到工程目录下,跟工程文件同一目录下。

     

    图5 工程目录 

     

  6. 进行工程文件的配置。

     

    1. Build Phases页签项配置,包含链接文件配置和拷贝文件配置,分别为:Link Binary With Libraries和Copy Files(默认没有此项,可在此页签上单击+号添加)。

      两种配置下需要配置的文件分别如下图所示,需要按照此顺序进行配置。

      图6 Link Binary With Libraries配置 
      图7 Copy Files配置 
    2. General配置,需要配置Deployment Info,开发证书请根据自己需要进行配置。
      图8 General中Deployment Info配置 
    3. Capabilities配置,需要打开应用的Background Modes。
      图9 Background Modes配置 
    4. Info配置,需要配置权限提示语(语言信息根据自己需要进行设置)和拉起第三方应用等信息,需要配置的字段如下:
      • Privacy - Media Library Usage Description 使用系统相册权限提示语
      • Privacy - Calendars Usage Description 使用系统日历权限提示语
      • Privacy - Camera Usage Description 使用相机权限提示语
      • Privacy - Microphone Usage Description 使用麦克风权限提示语
      • Privacy - Bluetooth Peripheral Usage Description 使用蓝牙权限提示语
      • Privacy - Contacts Usage Description 使用通讯录权限提示语
      • Privacy - Photo Library Usage Description 使用相册权限提示语
      • App Transport Security Settings--Allow Arbitrary Loads 需要设置为YES
      • LSApplicationQueriesSchemes---新增mailto,类型均为String
      图10 Info信息配置 
    5. Build Settings配置,需要配置Enable Bitcode设置为NO,Valid Architectures设置为arm64,添加Other Link Flags为-ObjC。
      图11 Build Setting配置 
      图12 Valid Architectures设置 
      图13 添加Other Link Flags为-ObjC 
    6. 将xml文件添加到工程中,右键工程选择“Add Files to "CloudLinkDemo"...”,然后在下一步选中config.xml文件,单击“add”,完成xml文件添加。
      图14 右键选择添加文件 
      图15 选择要添加的config.xml文件 
      图16 完成xml文件的添加的效果 

     

  7. 添加代码如下。

     

    在调用CloudLinkMeeting接口的文件中必须包含以下头文件。

    #import <CloudLink_Meeting/CloudLinkMeeting.h>
     

    CloudLinkMeeting包含了如下这几个接口。

    /**
     初始化配置接口
     @param initParam 初始化参数
     @param completionBlock 完成回调
     */
    - (void)clm_init:(clmInitParam *)initParam completionBlock:(clmActionCompletionBlock)completionBlock;
    /**
     登录接口
    
     @param loginParam 登录参数
     @param completionBlock 完成回调(需要先初始化才能调用)
     */
    - (void)clm_login:(clmLoginParam *)loginParam
            completionBlock:(clmActionCompletionBlock)completionBlock;
    
    
    /**
     创建会议接口
    
     @param createParam 创会参数
     @param completionBlock 完成回调(需要先初始化登录才能调用)
     */
    - (void)clm_createMeeting:(clmCreateMeetingParam *)createParam
              completionBlock:(clmActionCompletionBlock)completionBlock;
    /**
     携带与会者创建会议接口
    
     @param createParam 创会参数
     @param participants 与会者参数
     @param completionBlock 完成回调(需要先初始化登录才能调用)
     */
    - (void)clm_createMeeting:(clmCreateMeetingParam *)createParam
             withParticipants:(NSArray <clmMeetingParticipantParam *>*)participants
              completionBlock:(clmActionCompletionBlock)completionBlock;
    /**
     使用会议ID入会接口
    
     @param joinParam 加入会议参数
     @param completionBlock 完成回调(需要先初始化登录才能调用)
     */
    - (void)clm_joinMeetingById:(clmJoinMeetingParam *)joinParam
                completionBlock:(clmActionCompletionBlock)completionBlock;
     

    需要在demo中新增控件分别用于四个接口的调用使用,其中后面三个接口需要参数输入,因此需要有UI控件界面支持参数输入。

    下面分别列举各个接口的调用示例;

    1. 初始化接口:(其他接口调用之前必须先初始化)

    - (void)clm_init:(clmInitParam *)initParam completionBlock:(clmActionCompletionBlock)completionBlock

    使用示例如下。
    - (void)initClm {
    //调用接口
        CloudLinkMeeting *clm = [CloudLinkMeeting sharedInstance];
    //init第一个参数为配置信息字符串,为预留,没有特殊需求的时候可以传递nil
        [clm clm_init:nil completionBlock:^(NSError *error) {
    //响应回调处理,这里的示例对返回做了打印处理,error为nil表示成功
             NSLog(@"clm_init result is:%@", error);
        }];
    }
     

    2. 登录接口:

    - (void)clm_login:(clmLoginParam *)loginParam

    completionBlock:(clmActionCompletionBlock)completionBlock

    使用示例如下。
    - (void)loginToClm {
    //登录参数准备,这里以TextField输入为示例
        CloudLinkMeeting *clm = [CloudLinkMeeting sharedInstance];
        clmLoginParam *loginParam = [[clmLoginParam alloc] init];
        loginParam.account = self.userAccountField.text;
        loginParam.password = self.userPasswordField.text;
    //调用接口
        [clm clm_login:loginParam completionBlock:^(NSError *error) {
    //响应回调处理,这里的示例对返回做了打印处理,error为nil表示成功
            NSLog(@"clm_login result is:%@", error);
        }];
    }
     

    3.创会接口:

    - (void)clm_createMeeting:(clmCreateMeetingParam *)createParam

    completionBlock:(clmActionCompletionBlock)completionBlock;

    使用示例如下。

    - (void)createClmConf {
    //创会参数准备,这里以TextField输入作为示例
        CloudLinkMeeting *clm = [CloudLinkMeeting sharedInstance];
        clmCreateMeetingParam *param = [[clmCreateMeetingParam alloc] init];
        param.meetingSubject = self.subjectTextField.text;
        param.meetingType = (self.mediaTypeSwitch.isOn ? CONF_MEDIA_FLAG_VIDEO_DATA : CONF_MEDIA_FLAG_VOICE_DATA);
    //调用接口
        [clm clm_createMeeting:param completionBlock:^(NSError *error) {
    //响应回调处理,这里的示例对返回做了打印处理,error为nil表示成功
            NSLog(@"create clm conf ,error is:%@", error);
        }];
    }
     

    4.创会接口(携带与会者):

    - (void)clm_createMeeting:(clmCreateMeetingParam *)createParam

    withParticipants:(NSArray<clmMeetingParticipantParam *> *)participants

    completionBlock:(clmActionCompletionBlock)completionBlock;

    使用示例如下。
    - (void)createClmConfWithParticipants {
    //创会参数准备,这里以TextField输入作为示例
        CloudLinkMeeting *clm = [CloudLinkMeeting sharedInstance];
        clmCreateMeetingParam *param = [[clmCreateMeetingParam alloc] init];
        param.meetingSubject = self.subjectTextField.text;
        param.meetingType = (self.mediaTypeSwitch.isOn ? CONF_MEDIA_FLAG_VIDEO_DATA : CONF_MEDIA_FLAG_VOICE_DATA);
    //与会者参数准备,这里以TextField输入为示例,这里仅添加一个与会者作为示例
        clmMeetingParticipantParam *participant = [[clmMeetingParticipantParam alloc] init];
        participant.number = self.participantNumberTextField.text;
        participant.name = self.participantNameTextField.text;
        NSarray *participants = @[participant];
    //调用接口
        [clm clm_createMeeting:param 
              withParticipants:participants
               completionBlock:^(NSError *error) {
    //响应回调处理,这里的示例对返回做了打印处理,error为nil表示成功
            NSLog(@"create clm conf ,error is:%@", error);
        }];
    }
     

    5.入会接口:

    - (void)clm_joinMeetingById:(clmJoinMeetingParam *)joinParam

    completionBlock:(clmActionCompletionBlock)completionBlock;

    - (void)joinClmConf {
    //入会参数准备,这里以TextField输入作为示例
        CloudLinkMeeting *clm = [CloudLinkMeeting sharedInstance];
        clmJoinMeetingParam *param = [[clmJoinMeetingParam alloc] init];
        param.meetingID = self.confIdField.text;
        param.accessCode = self.accessCodeField.text;
    //调用接口
        [clm clm_joinMeetingById:param completionBlock:^(NSError *error) {
    //响应回调处理,这里的示例对返回做了打印处理,error为nil表示成功
            NSLog(@"clm join meeting, result is:%@", error);
            }
        }];
    }
     

    完成上述接口调用代码后即可完成基于CloudLinkMeeting iOS的demo,更详细信息请参考CloudLinkMeetingDemo样例代码。