uni-app 鸿蒙next获取应用版本号方式错误

发布于 1周前 作者 sinazl 来自 Uni-App

uni-app 鸿蒙next获取应用版本号方式错误

信息类别 详情
产品分类 uniapp/App
PC开发环境 Windows
PC版本号 win11
HBuilderX 正式版
HBuilderX版本号 4.36
手机系统 HarmonyOS NEXT
手机版本号 HarmonyOS NEXT Developer Beta2
手机厂商 华为
手机机型 mate60
页面类型 vue
vue版本 vue3
打包方式 云端
项目创建方式 HBuilderX

操作步骤:

/

预期结果:

/

实际结果:

/

bug描述:

uni.getAppBaseInfo().appVersion获取的是manifest.json 中应用版本名称。 然而鸿蒙的版本号用的是app.json5文件里面的版本号。 所以要么或者app.json5里面的,要么这个文件必须从manifest.json版本号覆盖。 总之两个地方需要统一,才能获取到真实的版本号。


更多关于uni-app 鸿蒙next获取应用版本号方式错误的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app 鸿蒙next获取应用版本号方式错误的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在处理 uni-app 在鸿蒙(HarmonyOS)next 平台上获取应用版本号的问题时,首先需要确保你使用的是正确的 API 和方法。由于 HarmonyOS 和其他操作系统(如 Android、iOS)在 API 设计上存在差异,因此直接套用其他平台的代码可能会导致错误。

在 HarmonyOS 上,获取应用版本号通常涉及到访问应用的包信息(PackageInfo)。以下是一个使用 JavaScript/TypeScript 在 uni-app 中获取应用版本号的示例代码,假设你已经正确配置了 HarmonyOS 的开发环境,并且你的项目已经迁移或适配到了 HarmonyOS:

// 引入必要的模块
import ohos from '@ohos.bundle';

// 定义一个异步函数来获取应用版本号
async function getAppVersion() {
    try {
        // 获取应用的包信息
        const bundleInfo = await ohos.bundle.getBundleInfoAsync(ohos.bundle.getBundleManager(), ohos.app.getApplicationContext().getPackageName(), 0);
        
        // 从包信息中提取版本号
        const versionName = bundleInfo.versionName;
        
        // 打印版本号
        console.log("应用版本号: " + versionName);
        
        // 返回版本号
        return versionName;
    } catch (error) {
        // 处理错误
        console.error("获取应用版本号失败: ", error);
        return null;
    }
}

// 调用函数获取版本号
getAppVersion().then(version => {
    if (version) {
        // 可以在这里进行进一步处理,比如显示版本号
        alert("当前应用版本号为: " + version);
    }
});

注意以下几点:

  1. API 兼容性:确保你使用的 API 是 HarmonyOS 支持的。上述代码使用了 ohos.bundle.getBundleInfoAsync 方法,这是 HarmonyOS 提供的用于获取包信息的 API。

  2. 权限配置:在 HarmonyOS 应用中,可能需要配置相应的权限才能访问应用的包信息。请检查你的 config.json 或其他配置文件,确保已经添加了必要的权限。

  3. 异步处理:由于获取包信息是一个异步操作,因此需要使用 async/await.then() 方法来处理异步结果。

  4. 错误处理:在实际开发中,应添加适当的错误处理逻辑,以便在获取版本号失败时能够给出友好的用户提示或进行其他处理。

如果你发现上述代码在你的项目中仍然无法正常工作,请检查你的开发环境、项目配置以及 HarmonyOS SDK 的版本是否支持上述 API。同时,查阅最新的 HarmonyOS 开发文档也是解决此类问题的有效途径。

回到顶部