HarmonyOS 鸿蒙Next如何获取app的版本号
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来实现。以下是具体的获取方法:
-
使用bundleManager获取:
- 调用
bundleManager.getBundleInfoForSelfSync
方法,并设置合适的标志位,如BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION
,来获取包含版本信息的bundle对象。 - 从返回的bundle对象中提取
versionName
(版本名)和versionCode
(版本号)。
- 调用
-
异步获取方式:
- 使用
bundleManager.getBundleInfoForSelf
方法,该方法返回一个Promise对象。 - 在Promise的then回调中处理返回的bundleInfo对象,同样可以获取到
versionName
和versionCode
。
- 使用
示例代码如下:
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。