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