HarmonyOS 鸿蒙Next如何获取app的版本号

发布于 1周前 作者 sinazl 来自 鸿蒙OS

HarmonyOS 鸿蒙Next如何获取app的版本号

想获取app.json5中的versionCode、versionName。

使用

let context1: featureAbility.Context = featureAbility.getContext();

context1.getAppVersionInfo((error, data) => {

  if (error && error.code !== 0) {

    console.error(getAppVersionInfo fail, error: ${JSON.stringify(error)});

  } else {

    console.log(getAppVersionInfo success, data: ${JSON.stringify(data)});

  }

});

报错如下:This API is used only in FA Mode, but the current apiType is stageMode. <ArkTSCheck>

2 回复
可使用bundleManager.getBundleInfoForSelf接口获取BundleInfo,其中有versionCode、versionName,可以参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-bundle-bundleinfo-V5

在HarmonyOS 鸿蒙Next系统中,获取app的版本号可以通过系统API来实现。以下是具体的获取方法:

  1. 使用bundleManager获取

    • 调用bundleManager.getBundleInfoForSelfSync方法,并设置合适的标志位,如BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION,来获取包含版本信息的bundle对象。
    • 从返回的bundle对象中提取versionName(版本名)和versionCode(版本号)。
  2. 异步获取方式

    • 使用bundleManager.getBundleInfoForSelf方法,该方法返回一个Promise对象。
    • 在Promise的then回调中处理返回的bundleInfo对象,同样可以获取到versionNameversionCode

示例代码如下:

import { bundleManager } from '@kit.AbilityKit';

bundleManager.getBundleInfoForSelf(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION)
  .then((bundleInfo) => {
    let versionName = bundleInfo.versionName; // 应用版本名
    let versionCode = bundleInfo.versionCode; // 应用版本号
  })
  .catch((error) => {
    console.error("获取版本信息失败", error);
  });

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部