头图

1.同步方式获取

首先需要导包:

import bundleManager from '@ohos.bundle.bundleManager'

工具类:

  public static async getVersionName(): Promise<string> {
    try {
      let bundleInfo =
        await bundleManager.getBundleInfoForSelf(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION);
      return bundleInfo.versionName;
    } catch (error) {
      LogUtils.e(JSON.stringify(error))
    }
    return "";
  }

  public static async getVersionCode(): Promise<string> {
    try {
      let bundleInfo =
        await bundleManager.getBundleInfoForSelf(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION);
      return bundleInfo.versionCode.toString();
    } catch (error) {
      LogUtils.e(JSON.stringify(error))
    }
    return "";
  }

  public static async getAppVersion() {
    return `v${await this.getVersionName()}.${await this.getVersionCode()}`
  }

使用方法:

鸿蒙OS开发更多内容↓点击HarmonyOS与OpenHarmony技术
鸿蒙技术文档开发知识更新库gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md在这。或+mau123789学习,是v喔
//获取版本号
    this.version = await AppUtils.getAppVersion()

2.异步方式获取

bundleManager.getBundleInfoForSelf(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION)
      .then((bundleInfo) => {
        let versionName: string = bundleInfo.versionName; //应用版本名
        let versionNo: string = bundleInfo.versionCode.toString(); //应用版本号
        this.version = "v" + versionName + "." + versionNo
      }).catch((error) => {
      console.error("获取版本号异常:" + error)
    })

总结:

鸿蒙大部分提供的方法都是异步的,所以可以使用async、await 转换,可以跟同步方法一样的使用...只是要注意这个会阻塞


烧脑猴
24 声望21 粉丝

5年JAVA,3年Android。现转入鸿蒙开发行业,每日分享一些鸿蒙技术!