快速入门
本小节以实现初始化SDK为例,介绍如何使用HarmonyOS SDK进行二次集成开发。
开发环境准备
在开发的过程中请满足如下环境要求。
环境和工具名称 |
版本要求 |
说明 |
---|---|---|
操作系统 |
HarmonyOS SDK API 13 及以上 |
- |
DevEco Studio |
DevEco Studio 5.0.1及以上 |
- |
测试资源及App ID申请 |
- |
请参见“开发前准备”。 |
SDK快速集成
- 将下载的软件包全部解压得到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" } }, { "name": "ohos.permission.SYSTEM_FLOAT_WINDOW", "usedScene": { "abilities": [ "EntryAbility" ], "when": "always" } } ]
注: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); }
- 初始化
- 其他接口调用示例。
- 登录接口
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工程。
- 登录接口