华为云用户手册

  • 环境要求 在iOS Demo的编译运行过程中请满足如下环境要求。 表1 环境要求 环境和工具名称 版本要求 说明 操作系统 Mac OSX High Sierra 10.14.4及以上 Xcode对Mac系统要求,推荐版本10.15以上 Xcode Xcode11及以上 Demo及文档以Xcode11.3.1为例 iOS系统版本 iOS11.0及以上,64位设备 屏幕共享功能需iOS12及以上 测试资源及App ID申请 - 请参见“开发前准备”。 表2 项目配置要求 名称 要求 说明 Enable Bitcode NO 不支持编译代码优化 Valid Architectures arm64 支持CPU架构 Other Link Flags -ObjC 把静态库中所有的Objective-C类和分类都加载到最后的可执行文件中 表3 第三方开源库 开源库名称 建议版本 Masonry 必须使用1.1.0及以上 SSZipArchive 2.1.3 YYModel 1.0.4 CocoaLumberjack 3.4.1 libyuv 1.0.2 AFNetworking 4.0.1
  • 方法定义 1 virtual void OnQueryContactAvatar(const char account[HWM_MAX_ACCOUNT_LEN], const char thirdUserId[HWM_MAX_ACCOUNT_LEN], const char sipNumber[HWM_MAX_NUMBER_LEN], char* avatarPath,int pathLen) {};
  • 参数描述 表1 参数 类型 描述 account char[] 登录华为云会议的账号信息。 thirdUserId char[] 登录华为云会议的第三方用户Id。 sipNumber char[] 账号对应的sip号码。 avatarPath char* 查询通讯录返回的头像路径。 pathLen int 最大路径长度。 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 /** * 查询外部通讯录头像 */ void demoNotifyProc::OnQueryContactAvatar(const char* account, const char* thirdUserId, const char* sipNumber, char* avatarPath, int pathLen) { Cdemo* app = (Cdemo*)AfxGetApp(); if (!app || (strlen(account) == 0 && strlen(thirdUserId) == 0 && strlen(sipNumber) == 0)) { //窗口已经关闭或数据为空 return; } string sAccount = account; string sThirdUserId = thirdUserId; string sSipNumber = sipNumber; /* 根据用户层自己的逻辑 + account thirdUserId sipNumber 获取到头像图片路径信息并复制到avatarPath char数组内*/ // 测试使用时,在D:\\picture\\路径下放置一张图片test.png strcpy_s(avatarPath, pathLen, "D:\\picture\\test.png"); }
  • 业务流程 接口调用 创建登录参数AppIdAuthParam。 设置第三方账号的唯一标识。 设置随机字符串。 设置签名信息。 设置该用户所在的企业ID,仅SP模式下需要填写 设置签名过期时间。 设置登录账号的昵称。 设置登录账号的邮箱。 设置登录账号的手机号码。 调用loginByAppid接口进行登录,第1步中的数据作为参数,会议服务器会根据相关参数,如果没有开户则执行开户。 处理回调 处理回调中的结果。
  • UploadSelfAvatar 接口描述 该接口用于上传当前自己的头像到会议服务器的通讯录。 注意事项 请在已登录状态下调用。 上传的图片文件格式仅支持jpg/png格式,大小需要限制在200KB以下。 为保证头像展示效果,建议图片宽高比为1:1 方法定义 1 HWM_SDK_AGENT_API hwmsdk::HwmErrCode UploadSelfAvatar(const HwmSelfAvatarInfo *selfAvatarInfo);
  • 参数描述 表1 HWMP2PConfRecordInfoModel 参数说明 参数 类型 描述 callerInfo HWMUISDKCallMemberInfoModel 主叫方信息。 calleeInfo HWMUISDKCallMemberInfoModel 被叫方信息。 startTime NSInteger 呼叫开始时间。 endTime NSInteger 呼叫结束时间。 isCallOut BOOL 是否为主动呼出。 mediaType HWMUISDKMediaType 媒体类型。 resultCode HWMUISDKSDKERR 呼叫结束原因。 resultMsg NSString 呼叫结束描述。 isCallEstablished BOOL 呼叫是否建立。 表2 HWMUISDKCallMemberInfoModel参数说明 参数 类型 描述 number NSString 号码。 nickName NSString 成员名称。 thirdUserId NSString 第三方账号。 表3 枚举HWMUISDKMediaType说明 枚举值 描述 HWMUISDKMediaTypeAudio 音频类型。 HWMUISDKMediaTypeVideo 视频类型。
  • 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 // 通过会议ID加入会议 int demoJoinConfByIdDlg::clickJoinConfById() { // 填写会议ID和会议密码;未登录场景下加入会议时,也可以配置本会场的会场名称 hwmsdkagent::HwmJoinConfByIdInfo data; memset(&data, 0, sizeof(hwmsdkagent::HwmJoinConfByIdInfo)); strncpy_s(data.confId, GetMeetingID().c_str(), HWM_MAX_CONF_ID_LEN); strncpy_s(data.password, GetAccessCode().c_str(), HWM_MAX_PASSWORD_LEN); strncpy_s(data.name, GetParticipantName().c_str(), HWM_MAX_DISPLAY_NAME_LEN); int ret = hwmsdkagent::JoinConfById(&data); return ret; } 1 2 3 4 5 6 7 8 9 10 11 /** * 会议id入会接口回调 */ void demoCallbackProc::OnJoinConfByIdResult(hwmsdk::HwmErrCode ret, const char* msg) { CString codeStr; codeStr.Format(_T("%d"), ret); string msgStr = CTools::UTF82MultiByte(msg); CString tips = _T("OnJoinConfByIdResult code:") + codeStr + _T(", msg:") + CString(msgStr.c_str()); AfxMessageBox(tips); } OnConfState和OnConfInfo的事件通知跟创建会议场景相同,请参考创建会议的示例代码。
  • 业务流程 使用SDK加入已经存在的会议时,先调用JoinConfById接口,然后处理回调函数OnJoinConfByIdResult和消息通知OnConfState、OnConfInfo。 接口调用 组装数据结构HwmJoinConfByIdInfo。 调用JoinConfById开始创建,第1步中的数据作为参数。 处理回调函数 处理回调函数OnJoinConfByIdResult。 处理消息通知 处理消息通知OnConfState。 处理消息通知 处理消息通知OnConfInfo。
  • 账号相关名词 华为云账号 华为云上的租户身份标志,用于在华为云上购买华为云会议服务,或者使用华为云提供的工具(如API Explorer等)。账号鉴权在华为云的IAM上完成。 华为云会议账号 华为云会议上的用户身份标志。账号鉴权在华为云会议的USG上完成。华为云会议账号分为3类: 华为云会议SP账号 华为云会议SP账号,用于多租户场景下SP管理员对多个企业的管理,包括企业发放、企业资源分配等。 华为云会议企业管理员账号 华为云会议企业管理员账号,用于企业管理员对企业的管理,包括企业部门管理、通讯录管理、云会议室管理等。 华为云会议普通用户账号 华为云会议普通账号,用于会议用户登录App(或者个人Portal)、创建会议、加入会议等。 父主题: 专有名词解释
  • 80.7.5更新内容 1. 新增显示设置界面接口showSettingWindow,接口详见显示设置窗口。 2. 会议信息通知OnConfInfoNotify新增参数isOtherCorpConf,具体详见会议信息通知。 3. 与会者列表子项注入点击通知OnClickInjectParticipantItemBtnNotify新增与会者详情按钮类型HWM_CLICK_INJECT_PARTICIPANT_ITEM_BTN_PARTICIPANT_DETAIL,新增华为云会议账号参数accountId ,具体详见与会者列表子项注入点击通知。 4. Config接口新增字段participant_detail,支持与会者头像点击注入,详见界面配置json说明。 父主题: 版本更新内容
  • 描述 通过邮件会议通知中的会议链接入会时(会议链接如:https://bmeeting.huaweicloud.com/#/j/981924330/e11ddec62ee760734fcf2ba55b79937eac2aa68677caf659),链接里面的是会议ID(即举例中的981924330)和会议的Random码(即举例中的e11ddec62ee760734fcf2ba55b79937eac2aa68677caf659)。 在华为云会议账号登录后或者登录前,都可以使用该接口通过分享会议链接中的会议ID和48位密码映射值Random加入会议。
  • 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 // 通过会议ID和Random加入会议 async goToJoinConfByRandom(){ let { confId, random, nickName, isSpeakerOff, isMicOn, isCameraOn } = this.state; let param = { confId: "988148352", random: "c4f92bc34e685bbba6c23589741be0431997f30da5d6e47b", nickName: "杭州会场", isSpeakerOff: false, // 入会后默认扬声器不关闭 isMicOn: true, // 入会后默认麦克风打开 isCameraOn: false, // 入会后默认摄像头关闭 } const apiService = new ApiService(); let setResult = await apiService.joinConfByRandom(param); if(setResult.ret != 0){ window.electron.ipcRenderer.send("show-error-alert", "joinConfByRandom error = " + setResult.ret); } }
  • 业务流程 使用SDK加入已经存在的会议时,先调用joinConfByRandom接口,然后处理接口回调函数onJoinConfByRandomResult和订阅的消息通知onConfStateChanged、onConfInfoNotify 接口调用 组装数据结构JoinConfByRandomInfo和回调函数onJoinConfByRandomResult。 调用joinConfByRandom开始入会,第1步中的数据作为参数。 处理回调函数 处理回调函数onJoinConfByRandomResult。 处理消息通知 处理消息通知onConfStateChanged。 处理消息通知 处理消息通知onConfInfoNotify。
  • 70.13.5更新内容 1.OnLoginResult、OnLoginBySSOResult回调增加HwmLoginResult参数;OnLogoutResult回调增加HwmLogoutResult参数,接口详见账号操作。如果是老版本升级到70.13.5版本,需要修改回调函数的定义。 2.修改winUI日志后缀名为txt,修改了四个日志命名:hwm_winconfui.txt,hwmSdk.txt,hwmSdkAgent.txt,hwmSdkAgent32.txt 3.Config接口中新增配置项:isUploadKeyLog 是否自动收集日志的开关,接口详见7.5.3.1-界面配置 4.Init接口HwmInitInfo参数新增字段:preferredCamera 优选摄像头列表参数,接口详见7.5.1.1-初始化 5.新增接口AVDeviceCtrl音视频设备控制和结果回调OnAVDeviceCtrlResult,接口详见音视频设备控制;新增对应通知OnAVDeviceCtrlStateChanged音视频设备状态,通知详见音视频设备状态 6.Config接口配置自定义按钮,支持动态刷新底部/共享工具栏,接口详见界面配置 父主题: 版本更新内容
  • 自定义账号通知事件 在OpenSDKConfig中配置登录账号相关通知回调的监听,以监测账号失效等场景 使用场景 账号被踢:onKickedOut Token失效:onTokenInvalid 账号被锁定:onAccountLocked 账号密码错误:onAccountOrPasswordError 注意事项 SDK初始化的时候必须传入这个配置sdkConfig才会生效 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 sdkConfig.setAccountEventHandle(new IAccountEventHandle() { @Override public void onKickedOut(@Nullable KickOutState kickOutState) { Log.i(TAG, "您的账号在其他终端登录"); } @Override public void onAccountOrPasswordError(@Nullable AccountOrPasswordErrorState accountOrPasswordErrorState) { Log.i(TAG, "onAccountOrPasswordError"); } @Overridepublic void onTokenInvalid(@Nullable TokenInvalidState tokenInvalidState) { // Token失效后,需要进行重新登录(退出并登录),否则会影响创会预约会议等基本功能 Log.i(TAG, "onTokenInvalid"); } @Override public void onAccountLocked(@Nullable AccountLockedState accountLockedState) { Log.i(TAG, "onAccountLocked"); } }); 父主题: 通知参考
  • 70.16.5更新内容 新增周期会议相关接口,具体请见预约周期会议、编辑周期会议、取消周期会议、编辑周期子会议、取消周期子会议 入会参数PasswordJoinConfParam 新增 isStopConflictConf字段,能够强制结束和当前VMR会议资源冲突的会议,具体请见 表3 会议通知栏支持在来电时可配置是否显示通知,具体请见 表2 sso 登录接口调整,具体请见 loginBySSO 错误码整改,新版本错误码描述请见 表1 表1 新旧版本错误码对应关系 70.14.6 版本及之前的错误码 70.16.5 版本之后的错误码 新版本错误描述 -1 430100001 Common Error.:通用错误 500 430200001 unlogin.:未登录 12 430200002 Repeated login.:重复登录 10001 412100001 The message processing thread is not initialized.:消息处理线程未初始 10001 412100004 Memory allocation error.:分配内存错误 10001 412100005 XML parsing error.:XML解析出错 10001 412100009 Server error.:服务器异常 10001 412100014 Server redirect.:服务器返回重定向地址 10001 412100016 JSON parsing error.:JSON解析失败 10001 412200001 Internal error.:内部错误 10002 412100002 Parameter error.:参数错误 10002 412200002 Parameter error.:参数错误 10003 412100003 Timeout.:超时 10004 412100006 DNS resolution error.:DNS解析异常 10004 412100007 Request message failed.:请求消息异常 10004 412100013 Network error.:网络异常 10004 412200004 Network Error.:网络错误 201 430200003 SIP connection timeout.:SIP连接超 35 430400001 Password required to join the meeting.:加入会议需要密码 2 430200004 Invalid login password.:用于登录的密码参数不合法 420010001 430100003 SIP connection check failed.:SIP连接检查失败 10006 206010000 User name or password error.:用户名或密码错误 10006 206030000 The user does not exist.:系统中不存在该用户 10006 206010025 APPID verification failed.:APPID校验失败 10007 412100010 Account is locked.:账号被锁定 10007 206030015 The user is locked and will be locked in 60s.:用户已被锁定,请60秒后重试 父主题: 版本更新内容
  • 注意事项,使用前必看 需要使用通知方法时,必须注册代理对象。 两种方式: 初始化时,对HWMOpenSDKConfig对象的属性赋值 1 2 3 HWMOpenSDKConfig *config = [[HWMOpenSDKConfig alloc] init]; //示例根据需求使用对应代理 config.globalHandler = [NotifyMessageHandler sharedInstance]; 使用前使用[HWMSdk getSdkConfig]获取初始化对象给属性赋值 1 2 //示例根据需求使用对应代理 [HWMSdk getSdkConfig].globalHandler = [NotifyMessageHandler sharedInstance]; 代理方法必须写在代理对象中 使用代理时保证代理对象存在
  • 会议ID相关名词 会议ID相关的名词包括: 会议ID(Conference ID):在创建并发资源会议时由系统生成的会议ID;或者在创建云会议室资源会议并且选择随机会议ID时由系统生成的会议ID。用户用这个ID加入会议。 云会议室会议ID(VMR Conference ID):属于某个云会议室或者某个账号的个人固定会议ID。如果创建的会议ID是固定的,用户用这个ID加入会议。 会议UUID(Conference UUID):会议开始后,由系统生成的UUID。如果同一个会议ID在预约时间到期前(或者主持人结束会议前),召开多次,会生成多个会议UUID。这个ID用户不可见。 云会议室ID(VMR ID):标志某个云会议室或者个人固定会议ID的唯一ID。创建云会议室资源的会议或者并发资源的个人固定会议ID的会议时,需要在创会接口中填入这个ID。这个ID用户不可见。 这几个ID之间的关系如下图所示: 图1 会议相关ID之间的关系 父主题: 专有名词解释
  • 业务流程 使用SDK加入已经存在的会议时,先调用joinConfById接口,然后处理接口回调函数onJoinConfByIdResult和订阅的消息通知onConfStateChanged、onConfInfoNotify。 接口调用 组装数据结构JoinConfByIdInfo和接口回调函数onJoinConfByIdResult。 调用joinConfById接口,第1步中的数据作为参数。 处理回调函数 处理回调函数onJoinConfByIdResult。 处理消息通知 处理消息通知onConfStateChanged。 处理消息通知 处理消息通知onConfInfoNotify。
  • login:password: 接口描述 该接口用于通过账号密码鉴权登录。 注意事项 创建会议,被邀入会等功能只有在登录后才能使用,若不登录,将无法体验完整会议功能。 回调error表示错误信息,nil表示成功。 方法定义 1 - (void)login:( NSString * _Nonnull )account password:( NSString * _Nonnull )password callback:(_Nonnull HWMSDKLoginCompleteHandler)callback;
  • loginBySSO: 接口描述 该接口用于通过SSO的方式登录和鉴权。 注意事项 除匿名入会外,在使用其他业务之前必须进行成功登录。 方法定义 1 - (void)loginBySSO:(HWMSSOLoginParam *)param callback:(HWMSDKLoginCompleteHandler)callback; 参数描述 表4 HWMSSOLoginParam参数说明 参数 是否必须 类型 描述 domain 是 NSString * 企业域名 userTicket 是 NSString * code authServerType 是 HWMOpenAuthServerType 鉴权服务器类型 表5 枚举HWMOpenAuthServerType说明 值 描述 HWMOpenAuthServerTypeOauth2 单点登录 返回值 参考:表登录返回HWMLoginResult 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 /// SSO 登录接口 - (void)login { HWMSSOLoginParam *param = [[HWMSSOLoginParam alloc] init]; param.domain = domain; param.code = code; param.authServerType = HWMOpenAuthServerTypeOauth2; [[HWMSdk getOpenApi] loginBySSO:param callback:^(NSError * _Nullable error, HWMLoginResult * _Nullable result) { if (error == nil) { NSLog(@"登录成功"); }else{ NSLog(@"登录失败"); } }]; }
  • uploadSelfAvatarWithFilePath:callback: 接口描述 该接口用于上传用户自己头像。 注意事项 文件路径为头像路径。 大小限制200k。 只支持jpg、png。 为了头像展示效果,建议图片宽高比为1:1。 回调error表示错误信息,nil表示成功。 方法定义 1 - (void)uploadSelfAvatarWithFilePath:(NSString *_Nullable)filePath callback:(_Nonnull HWMSDKCompleteHandler)callback; 参数描述 表1 参数 是否必须 类型 描述 filePath 否 NSString * 头像文件路径 返回值 无 示例代码 1 2 3 4 5 6 7 8 9 10 /// 上传用户个人头像 - (void)uploadSelfAvatar { [[HWMBizSdk getBizOpenApi] uploadSelfAvatarWithFilePath:self.headImgPath callback:^(NSError * _Nullable error, id _Nullable result) { if (error) { [UIUtil showMessage:[NSString stringWithFormat:@"上传失败%@", error.localizedDescription]]; } else { [UIUtil showMessage:@"上传成功"]; } }]; }
  • downloadHeadPortraitWithThirdAccount: account: number: completionBlock: 接口描述 该接口用于定制登录后的头像显示。 图1 生效后拦截头像显示效果 注意事项 未登录的头像不支持自定义。 头像支持两种情况:一种主动上传,见上传个人头像接口;一种为注入实现,若两种都实现只会进行拦截的实现,不会从服务端下载上传的头像。 方法定义 1 - (void)downloadHeadPortraitWithThirdAccount:(NSString *)thirdAccount account:(NSString *)account number:(NSString *)number completionBlock:(void (^)(NSError * _Nullable, NSString * _Nullable))completionBlock 参数描述 表1 参数 类型 描述 thirdAccount NSString appid登录场景下优先使用此字段 account NSString 账号密码登录场景下 优先使用此字段 number NSString 跨企业场景优先使用此字段 返回值 无 示例代码 - (void)downloadHeadPortraitWithThirdAccount:(NSString *)thirdAccount account:(NSString *)account number:(NSString *)number completionBlock:(void (^)(NSError * _Nullable, NSString * _Nullable))completionBlock { if (completionBlock) { /// 将图片路径返回给SDK NSInteger index = arc4random() % 3; NSString *path = [[NSBundle bundleForClass:[self class]] pathForResource:[NSString stringWithFormat:@"head_icon_%lu", index] ofType:@"png"]; completionBlock(nil, path); } }
  • 示例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 /** * 注销 */ async Logout(){ const apiService = new ApiService(); let setResult = await apiService.logout(); if(setResult.ret === 0){ console.log("logoutresult:", setResult.logoutResult); window.sessionStorage.setItem("confListInfo", ""); this.props.history.push('/'); }else{ window.electron.ipcRenderer.send("show-error-alert", "logout error = " + setResult.ret); } }
  • login:password: 接口描述 该接口用于通过账号密码鉴权登录。 注意事项 创建会议,被邀入会等功能只有在登录后才能使用,若不登录,将无法体验完整会议功能。 回调error表示错误信息,nil表示成功。 方法定义 1 - (void)login:( NSString * _Nonnull )account password:( NSString * _Nonnull )password callback:(_Nonnull HWMSDKLoginCompleteHandler)callback;
  • loginBySSO: 接口描述 该接口用于通过SSO鉴权登录。 注意事项 创建会议,被邀入会等功能只有在登录后才能使用,若不登录,将无法体验完整会议功能。 回调error表示错误信息,nil表示成功。 方法定义 1 - (void)loginBySSO:(HWMSSOLoginParam)param callback:(_Nonnull HWMSDKLoginCompleteHandler)callback;
  • Init 接口描述 用于启动并且初始化SDK。 注意事项 调用该接口之前请先修改HwmSdk文件夹下HwmSdk.exe文件的名称。 该接口用于启动并初始化SDK,在调用其他接口之前必须先调用该接口并等待初始化回调结果。 每次调用初始化接口会重新启动SDK,之前所有设置与操作将不复存在。 该接口为异步接口,返回值只代表接口是否调用成功,实际业务处理结果在对应的回调函数中返回。 方法定义 1 HWM_SDK_AGENT_API hwmsdk::HwmErrCode Init(HwmInitInfo *initInfo);
  • logout 接口描述 该接口用于退出已登录的会议账号。 注意事项 请在已登录的场景下调用。 回调error表示错误信息,nil表示成功。。 方法定义 1 - (void)logout:(_Nonnull HWMSDKCompleteHandler)callback; 参数描述 无。 返回值 表1 退出返回HWMLogoutResult 参数 类型 描述 userUuid NSString * 账号uuid account NSString * 登录账号 thirdAccount NSString * appid登录的三方账号 示例代码 1 2 3 4 5 6 7 8 9 10 /// 退出登录 - (void)logout { [[HWMSdk getOpenApi] logout:^(NSError * _Nullable error, HWMLogoutResult* _Nullable result) { if (error == nil) { NSLog(@"登出成功"); } else { NSLog(@"登出失败"); } }]; }
  • startP2PConf 接口描述 该接口用于发起立即会议。 注意事项 1. 实际业务处理结果在对应的callback回调中。 方法定义 - (void)startP2PConf:(HWMStartP2PConfParam *)param callback:(_Nonnull HWMSDKCreateConfCompleteHandler)callback; 参数描述 参数 是否必须 类型 描述 param 是 HWMStartP2PConfParam * 发起立即会议信息。 表1 HWMStartP2PConfParam 说明 参数 是否必须 类型 描述 calleeInfo 是 HWMCalleeInfo * 被叫信息。 callerInfo 是 HWMCallerInfo * 主叫信息。 mediaType 是 HWMMediaType 媒体类型。 表2 HWMCallerInfo 说明 参数 是否必须 类型 描述 nickName 否 NSString * 主叫姓名。 表3 HWMCalleeInfo 说明 参数 是否必须 类型 描述 nickName 否 NSString * 被叫姓名。 number 是 NSString * 被叫号码。如果填分配给账号的sip号码(如+99111244216210249)则呼叫该账号的App;如果填PSTN号码(如18700000000),则通过VoIP网关呼叫该号码,前提是该企业已开通PSTN呼叫权限。与thirdUserId二选一,账号密码鉴权时使用。 thirdUserId 是 NSString * 第三方用户ID。与number二选一,App ID鉴权时使用。 返回值 无 示例代码 - (void)startP2PConf { // 设置被叫信息 HWMCalleeInfo *calleeInfo = [[HWMCalleeInfo alloc] init]; calleeInfo.nickName = @"被叫姓名"; calleeInfo.number = @"123456"; calleeInfo.thirdUserId = @"123456"; // 设置主叫信息 HWMCallerInfo *callerInfo = [[HWMCallerInfo alloc] init]; callerInfo.nickName = @"主叫姓名"; HWMStartP2PConfParam *param = [[HWMStartP2PConfParam alloc] init]; // 设置媒体类型 param.mediaType = HWMMediaTypeVideo; param.calleeInfo = calleeInfo; param.callerInfo = callerInfo; // 调用SDK接口 [[HWMSdk getOpenApi] startP2PConf:param callback:^(NSError * _Nullable error, HWMCreateConfResult * _Nullable result) { if (error) { [UIUtil showMessageWithError:error]; } else { [UIUtil showMessage:[NSString stringWithFormat:@"会议ID:%@, isP2PConf:%@", result.confId, result.isP2PConf?@"YES":@"NO"]]; } }]; }
  • logout 接口描述 该接口用于退出已登录的会议账号。 注意事项 请在已登录的场景下调用。 回调error表示错误信息,nil表示成功。 方法定义 1 - (void)logout:(_Nonnull HWMSDKLogoutCompleteHandler)callback; 参数描述 无。 返回值 表1 退出返回HWMLogoutResult 参数 类型 描述 userUuid NSString * 账号uuid account NSString * 登录账号 thirdAccount NSString * appid登录的三方账号 示例代码 1 2 3 4 5 6 7 8 9 10 /// 退出登录 - (void)logout { [[HWMSdk getOpenApi] logout:^(NSError * _Nullable error, HWMLogoutResult * _Nullable result) { if (error == nil) { NSLog(@"登出成功"); } else { NSLog(@"登出失败"); } }]; }
共100000条