更新时间:2025-01-09 GMT+08:00
分享

快速入门

本小节以实现初始化SDK为例,介绍如何使用HarmonyOS SDK进行二次集成开发。

开发环境准备

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

表1 环境要求

环境和工具名称

版本要求

说明

操作系统

HarmonyOS SDK API 13 及以上

-

DevEco Studio

DevEco Studio 5.0.1及以上

-

测试资源及App ID申请

-

请参见“开发前准备”。

SDK快速集成

  1. 将下载的软件包全部解压得到HWMUISDK.har(集成使用)。

    图1 解压出来的文件

    图2 SDK资源

  2. 打开“DevEco Studio”软件。
  3. 单击File->New->Create Project,选择Empty Ability->Next,填写应用信息,选择“Finish”完成新工程创建,具体步骤可参考下图。

    图3 选择创建新工程
    图4 选择新工程模板为Empty Ability
    图5 填写应用信息,点击Finish完成工程创建

  4. 步骤1中解压得到的HWMUISDK.har添加到项目中,同时在oh-package.json5中添加依赖。

    注:

    1) 添加依赖的路径必须和HWMUISDK.har实际路径保持一致,确保IDE能成功加载HWMUISDK.har。

    2) package name如下:

    1
    @hwcloudmeeting/uisdk
    
    图6 添加HWMUISDK.har到项目工程,并配置依赖

  5. 在EntryAbility.ets文件的生命周期方法中,调用UISDK相关接口。

    图7 Ability生命周期方法中调用UISDK相关接口

  6. 在module.json5中给应用Ability需配置后台模式。

    图8 module.json5中配置应用Ability后台模式

  7. 应用权限配置。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"
    }

  8. 关键接口调用说明。

    • 初始化
      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);
       }
      

  9. 其他接口调用示例。

    • 登录接口
      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工程。

相关文档