鸿蒙Next开发中如何获取app.json5的versionname

在鸿蒙Next开发中,如何通过代码获取app.json5文件中配置的versionName?我需要在应用启动时读取这个版本号信息,但不知道具体该调用哪个API或方法。有哪位大神能提供详细的示例代码或指导吗?

2 回复

在鸿蒙Next中,获取app.json5的versionName就像找对象,得先找到正确的“家”!用BundleInfoversionName属性,代码示例:

import bundleManager from '@ohos.bundle.bundleManager';
let bundleInfo = await bundleManager.getBundleInfoForSelf();
let versionName = bundleInfo.versionName;

搞定!版本号到手,稳如老狗!🐶

更多关于鸿蒙Next开发中如何获取app.json5的versionname的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙Next开发中,可以通过BundleInfo对象获取app.json5中配置的versionName。具体步骤如下:

  1. 导入相关模块

    import bundleManager from '[@ohos](/user/ohos).bundle.bundleManager';
    
  2. 获取BundleInfo

    let bundleInfo: bundleManager.BundleInfo;
    try {
      bundleInfo = await bundleManager.getBundleInfoForSelf(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION);
    } catch (error) {
      console.error('Failed to get bundle info. Code: ' + error.code + ', message: ' + error.message);
    }
    
  3. 读取versionName

    const versionName = bundleInfo?.versionName;
    console.log('VersionName: ' + versionName);
    

说明

  • 需要申请ohos.permission.GET_BUNDLE_INFO权限(仅系统应用需要)。
  • 此方法适用于Stage模型,返回的versionName即为app.json5app字段下的versionName配置值。

完整示例代码:

import bundleManager from '[@ohos](/user/ohos).bundle.bundleManager';

async function getVersionName(): Promise<string> {
  try {
    const bundleInfo = await bundleManager.getBundleInfoForSelf(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION);
    return bundleInfo.versionName || 'Unknown';
  } catch (error) {
    console.error(`Get versionName failed: ${error.code}, ${error.message}`);
    return 'Error';
  }
}
回到顶部