快速入门
本小节以实现初始化SDK为例,介绍如何使用HarmonyOS SDK进行二次集成开发。
开发环境准备
在开发的过程中请满足如下环境要求。
环境和工具名称 |
版本要求 |
说明 |
---|---|---|
操作系统 |
HarmonyOS 5.0.1 Release(Build Version: 5.0.0.123)及以上 |
详见HarmonyOS官网版本说明。 |
HarmonyOS SDK |
HarmonyOS 5.0.1 Release SDK(API 13 Release)及以上 |
- |
DevEco Studio |
DevEco Studio 5.0.1(Build Version: 5.0.5.315)及以上 |
- |
测试资源及App ID申请 |
- |
请参见“开发前准备”。 |

云会议SDK在Harmony OS系统上,仅支持按系统Navigation路由方式集成。鸿蒙系统官方已不推荐使用Router路由方式 。
SDK快速集成
HarmonyOS SDK支持单ability集成和多ability集成两种方式,本章节主要说明这两种方式的集成步骤。

移动端推荐单ability集成方式,PC端推荐多ability集成方式。
单ability集成
- 将下载的软件包全部解压得到HWMUISDK.har(集成使用)。
图1 解压出来的文件图2 SDK资源
- 打开“DevEco Studio”软件。
- 单击“Finish”完成新工程创建,具体步骤可参考下图。
,选择 ,填写应用信息,选择图3 选择创建新工程图4 选择新工程模板为Empty Ability图5 填写应用信息,点击Finish完成工程创建
- 将步骤1中解压得到的HWMUISDK.har添加到项目中,同时在oh-package.json5中添加依赖。
注:
1) 添加依赖的路径必须和HWMUISDK.har实际路径保持一致,确保IDE能成功加载HWMUISDK.har。
2) package name如下:
1
@hwcloudmeeting/uisdk
图6 添加HWMUISDK.har到项目工程,并配置依赖 - 在EntryAbility.ets文件的生命周期方法中,调用UISDK相关接口。
图7 Ability生命周期方法中调用UISDK相关接口
- 在module.json5中给应用Ability需配置后台模式。
图8 module.json5中配置应用Ability后台模式
- 应用权限配置。HarmonyOS SDK会中部分能力(主要涉及网络、麦克风、摄像头、共享采集等)需要应用在module.json5文件中申请相关权限才能正常使用。
"requestPermissions": [ { "name": "ohos.permission.KEEP_BACKGROUND_RUNNING" }, { "name": "ohos.permission.INTERNET" }, { "name": "ohos.permission.GET_NETWORK_INFO" }, { "name": "ohos.permission.GET_WIFI_INFO" }, { "name": "ohos.permission.MICROPHONE", "reason": "$string:microphone", "usedScene": { "abilities": [ "EntryAbility" ], "when": "always" } }, { "name": "ohos.permission.CAMERA", "reason": '$string:camera', "usedScene": { "abilities": [ "EntryAbility" ], "when": "inuse" } }, { "name": "ohos.permission.PREPARE_APP_TERMINATE", "usedScene": { "abilities": [ "EntryAbility" ], "when": "inuse" } } ]
注:ohos.permission.MICROPHONE和ohos.permission.CAMERA权限申请,需要在资源文件(文件路径:resources\base\element\string.json、resources\en_US\element\string.json、resources\zh_CN\element\string.json)定义下相关的reason描述:
{ "name": "microphone", "value": "麦克风" }, { "name": "camera", "value": "摄像头" }
{ "name": "microphone", "value": "microphone" }, { "name": "camera", "value": "camera" }
- 关键接口调用说明。
- 初始化
1 2 3 4 5 6
UISDK.getConfigApi().init({ appId: SdkConfigManager.sharedCacheManager().getAppId(), meetingAbilityName: 'EntryAbility', launchMode: HWMLaunchMode.SINGLE_ABILITY, navigationId: "UISDKDemoNavigationId", }, SdkConfigHandler.sharedCacheManager().context);
注:launchMode需要传HWMLaunchMode.SINGLE_ABILITY,navigationId是navigation页面的id属性,如下所示:
图9 navigationId设置
- 打开会议页面接口
1 2 3
UISDK.getConfigApi().openMeetingPage(() => { pathInfos.pushPathByName("HWMMeetingPage", null, false); });
注:
1. 此接口必须实现,如不实现,会出现入会后没有会中页面问题。
2. 此接口在初始化后,入会前调用,在拿到应用navigation路由栈pathInfos后设置一次就可以。
- 配置Ability的windowStage接口
1 2
const windowStage: window.WindowStage | undefined = AppStorage.get('windowStage'); UISDK.getAbilityApi().abilityRegisterWindowStage(windowStage);
注:
1. 此接口必须调用,如不调用,入会后会中页面会出现布局异常问题。
2. 此接口在初始化后调用,windowStage可以在ability生命周期函数onWindowStageCreate通知时存储,便于后续使用,如下所示:
1 2 3 4
onWindowStageCreate(windowStage: window.WindowStage): void { windowStage.loadContent('pages/Index', () => {}); AppStorage.setOrCreate("windowStage", windowStage); }
- 单ability集成下,窗口属性复用说明
由于只有一个ability,会中和会前共用窗口属性,会中的窗口属性设置会影响会前界面显示,HarmonyOS SDK内部对绝大部分场景,进行了复原操作,不需要集成方额外处理;但少数受系统限制的窗口属性,需要集成方处理下,保证会前的页面显示正常;
1. 窗口顶部导航栏是否显示
系统接口:
1
setWindowSystemBarEnable
复原方式:集成方可以监听navigation路由栈变化,当栈顶不是会中页面时,调用上述系统接口,按需设置systemBar状态;(参考Demo)
- 初始化
- 其他接口调用示例。
- 登录接口
1
UISDK.getLoginApi().loginByAppId(info).then((res: HWMLoginResult) => {});
- 创会接口
1
UISDK.getConfCtrlApi().creatConf(createConfParam).then((res: HWMCreateConfResult) => {});
- 入会接口
1
UISDK.getConfCtrlApi().joinConf(model).then((res: HWMJoinConfByIdResult) => {});
- 退出登录接口
1
UISDK.getLoginApi().logout().then((res) => {});
完成上述调用步骤,就可以运行 新建的demo工程。
- 登录接口
多ability集成
- 将下载的软件包全部解压得到HWMUISDK.har(集成使用)。
图10 解压出来的文件
- 打开“DevEco Studio”软件。
- 单击“Finish”完成新工程创建,具体步骤可参考下图。
,选择 ,填写应用信息,选择图11 选择创建新工程图12 选择新工程模板为Empty Ability图13 填写应用信息,点击Finish完成工程创建
- 将步骤1中解压得到的HWMUISDK.har添加到项目中,同时在oh-package.json5中添加依赖。
注:添加依赖的路径必须和HWMUISDK.har实际路径保持一致,确保IDE能成功加载HWMUISDK.har。
图14 添加HWMUISDK.har到项目工程,并配置依赖 - 创建会议Ability(如示例的InMeetingAbility.ets)。
图15 创建InMeetingAbility
- 在InMeetingAbility中添加abilityLoadInMeetingPage。
图16 调用abilityLoadInMeetingPage
- 在会议Ability文件的生命周期方法中,调用UISDK相关接口。
图17 会议Ability生命周期方法中调用UISDK相关接口
- 在module.json5中给会议Ability需配置后台模式。
图18 module.json5中配置会议Ability后台模式
- 应用权限配置。HarmonyOS SDK会中部分能力(主要涉及网络、麦克风、摄像头、共享采集等)需要应用申请相关权限才能正常使用。
"requestPermissions": [ { "name": "ohos.permission.KEEP_BACKGROUND_RUNNING" }, { "name": "ohos.permission.INTERNET" }, { "name": "ohos.permission.GET_NETWORK_INFO" }, { "name": "ohos.permission.GET_WIFI_INFO" }, { "name": "ohos.permission.MICROPHONE", "reason": "$string:microphone", "usedScene": { "abilities": [ "EntryAbility" ], "when": "always" } }, { "name": "ohos.permission.CAMERA", "reason": '$string:camera', "usedScene": { "abilities": [ "EntryAbility" ], "when": "inuse" } }, { "name": "ohos.permission.PREPARE_APP_TERMINATE", "usedScene": { "abilities": [ "InMeetingAbility" ], "when": "inuse" } }, { "name": "ohos.permission.SYSTEM_FLOAT_WINDOW", "usedScene": { "abilities": [ "InMeetingAbility" ], "when": "always" } } ]
- 接口调用示例。
- 初始化
1
UISDK.getConfigApi().init(initConfig, this.getContext());
- 登录接口
1
UISDK.getLoginApi().loginByAppId(info).then((res: HWMLoginResult) => {});
- 创会接口
1
UISDK.getConfCtrlApi().creatConf(createConfParam).then((res: HWMCreateConfResult) => {});
- 入会接口
1
UISDK.getConfCtrlApi().joinConf(model).then((res: HWMJoinConfByIdResult) => {});
- 退出登录接口
1
UISDK.getLoginApi().logout().then((res) => {});
完成上述调用步骤,就可以运行 新建的demo工程。
- 初始化