uni-app 使用plus.runtime.getProperty获取的版本仍为原来基座的版本 非manifest.json里的版本号

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

uni-app 使用plus.runtime.getProperty获取的版本仍为原来基座的版本 非manifest.json里的版本号

示例代码:

plus.runtime.getProperty(plus.runtime.appid, function(widgetInfo) {  
    console.log(widgetInfo)  
    versionCode = widgetInfo.versionCode;    
});

操作步骤:

复制代码运行一下

预期结果:

拿到manifest.json的版本号

实际结果:

没有拿到

bug描述:

HBuilderX版本:2.7.5.20200519
手机OS平台:ios
手机OS系统版本:13.5
编译模式v3->nvue: v3
页面类型:nvue

我的manifest.json配置
实际拿到的数据

开发环境、版本号、项目创建方式

项⽬信息 详情
HBuilderX版本 2.7.5.20200519
手机OS平台 ios
手机OS系统版本 13.5
编译模式v3->nvue v3
页面类型 nvue

9 回复

此贴已解决, plus.runtime.getProperty(plus.runtime.appid, function(widgetInfo) {
versionCode = widgetInfo.version;
console.log(widgetInfo.version) //1.0.7
}); 拿到这个,把小数点去掉就好了。


还有个问题,就是热更新重启之后,怎么仍然提示要更新重启,获取不到版本号?

麻烦问下 这个问题解决了嘛

回复 张文远: 你的是什么问题?拿不到?

widgetInfo.version我是根据这个比对,热更新后还是原来的,但内容已经更新了

大佬,这个问题有解决吗 我也出现了同样的问题

重新编译,运行项目就行了

plus.runtime.getProperty获取到的widgetInfo.version不是manifest.json里的版本号,很可能的原因是你用了标准基座运行打包,看一下我的这个帖子: https://ask.dcloud.net.cn/question/204230?item_id=291536&rf=false

在uni-app开发中,plus.runtime.getProperty 方法通常用于获取当前应用的运行时信息,包括版本号等。如果你发现通过 plus.runtime.getProperty 获取的版本号仍然是旧基座(即HBuilderX的内置运行基座)的版本号,而不是你在 manifest.json 中定义的新版本号,这通常意味着应用可能未正确打包或更新。

这里有几个可能的原因和相应的代码示例来帮助你检查和解决问题。

1. 确认应用是否已重新打包

首先,确保你已经重新打包了应用,并且新的 manifest.json 中的版本号已经被包含在内。重新打包通常是通过HBuilderX的“发行”功能完成的。

2. 检查manifest.json中的版本号

确保manifest.json中的mp-weixin(或其他平台配置)下的version字段已经更新为你期望的新版本号。

{
  "mp-weixin": {
    "appid": "your-app-id",
    "setting": {
      "urlCheck": false
    },
    "version": {
      "name": "1.0.1", // 确保这里的版本号是你期望的新版本
      "code": "101"
    }
  }
}

3. 使用plus.runtime.getProperty获取版本号

在你的uni-app代码中,你可以这样使用plus.runtime.getProperty来获取当前应用的版本号:

if (window.plus) {
    plus.runtime.getProperty(function(info) {
        console.log("App Name: " + info.name);
        console.log("App Version: " + info.version);
        console.log("App Version Code: " + info.versionCode);
    });
} else {
    console.log("plus environment is not ready");
}

4. 清理和重装应用

在开发过程中,有时候旧的基座缓存可能会导致问题。尝试清理应用数据或重新安装应用,看是否能获取到新的版本号。

5. 检查基座版本

确保你的HBuilderX和内置的基座版本是最新的。有时候,基座本身的bug也可能导致版本号获取不正确。

6. 日志和调试

如果上述步骤都无法解决问题,查看HBuilderX的控制台输出和应用的日志,可能会有更详细的错误信息帮助定位问题。

通过上述步骤,你应该能够确认是否成功获取到了manifest.json中定义的新版本号。如果问题依旧存在,可能需要更深入地检查你的项目配置或咨询uni-app的官方支持。

回到顶部