鸿蒙OS实例:同步获取应用配置的【versionCode和versionName】

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()}`
  }

使用方法:

//获取版本号
    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 转换,可以跟同步方法一样的使用...只是要注意这个会阻塞

posted @ 2024-05-13 21:41  烧脑猴  阅读(216)  评论(0)    收藏  举报
鸿蒙NEXT文档资料 mau123789是助理v直接可拿取