更新时间:2019-11-20
以实现登录企业云通信服务器并加入视频会议为例,介绍如何使用iOS SDK进行二次集成开发。
在开发的过程中请满足如下环境要求。
环境和工具名称 |
版本要求 |
说明 |
---|---|---|
操作系统 |
Mac OSX High Sierra 10.13.6及以上 |
- |
Xcode |
Xcode9.4.1及以上 |
其他IDE工具。 |
iOS系统版本 |
iOS9.0及以上,64位设备 |
- |
会议云服务的用户帐号 |
- |
帐号可来源于华为公有云。开通方法请参见“开发前准备”。 |
两种配置下需要配置的文件分别如下图所示,需要按照此顺序进行配置。
在调用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样例代码。