1、DeviceInfoUtils工具
import bundleManager from'@ohos.bundle.bundleManager';
import { BusinessError } from'@ohos.base';
/**
* @author J.query
* @date 2024/10/14 9:20
* @email j-query@foxmail.com
* Description:
*/
export class DeviceInfoUtils{
/**
* 获取应用版本号
* @returns
*/
public static getVersionCode(): Promise<number> {
return bundleManager.getBundleInfoForSelf(bundleManager.BundleFlag.GET_BUNDLE_INFO_DEFAULT)
.then(data => {
return data.versionCode;
}).catch((err: BusinessError) => {
return 0;
});
}
/**
* 获取应用版本号
*/
static async getAppVersion(): Promise<string> {
let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION;
try {
// 使用await等待Promise的结果
const data = await bundleManager.getBundleInfoForSelf(bundleFlags);
if (data) {
console.info('FileUtil', 'getBundleInfoForSelf successfully. Data: %s', JSON.stringify(data));
return data.versionName; // 返回版本号
} else {
console.error('FileUtil', 'getBundleInfoForSelf returned an empty result.');
return ''; // 返回空字符串
}
} catch (err) {
console.error('FileUtil', 'getBundleInfoForSelf failed: %s', err.message);
return ''; // 返回空字符串
}
}
}
2、示例:
this.versionName = await DeviceInfoUtils.getAppVersion()
this.versionCode = await DeviceInfoUtils.getVersionCode()