uniapp系列-uni.getAppBaseInfo() versionCode appVersion 值不对应该怎么解决?
文章目录
- 问题描述
- 问题分析
- 应用代码调试所处的各种情况讲解
- 观察对比
- 问题解决
- 情况1:云打包
- 情况2:自定义壳子
- 今天就写到这里啦~
- 欢迎路过的小哥哥小姐姐们提出更好的意见哇~~
今天看到一个BUG
问题描述
- 我们使用uniapp的官方文档中uni.getAppBaseInfo()后获取的 appVersionCode appVersion ,发现获得的结果和我们实际设置的不一致,不是manifest.json里面的值,如下图所示
- 官方文档:https://uniapp.dcloud.net.cn/api/system/getAppBaseInfo.html
问题分析
- 首先我们需要搞清楚我们是使用什么方式打的包,是uniapp云打包,安心打包,还是自定义壳子打包
- 不同方式打包的原理不一样,所以会得到不一样的结果
- 不同打包方式获取app info 的代码也可以有不同的写法
- 我们的代码会运行在各种不同的情况下,所以要用不同的代码来处理
应用代码调试所处的各种情况讲解
- 安心打包:App云端打包时需要将应用代码、打包证书等提交到DCloud云端打包机,在云端打包机的原生开发环境中生成安装包apk/ipa。 DCloud云端服务器虽然不会保存开发者应用代码和证书等信息,但开发者可能还是不放心,或者担心在网络传输过程中可能存在拦截泄漏的风险。
- 标准基座运行:因手机差异较大,HBuilder并没有提供App的模拟器。不管uni-app或5+App/wap2app项目,都需要连接真实的手机或手机模拟器来运行测试,称之为“真机运行”。
- 自定义基座:自定义运行基座可以所有配置生效(主要是manifest.json的配置)
- 原生壳子自定义集成uni小程序SDK形式:uni小程序SDK,是为原生App打造的可运行基于 uni-app 开发的小程序前端项目的框架,从而帮助原生App快速获取小程序的能力
观察对比
标准基座运行
原生壳子自定义集成uni小程序SDK形式
问题解决
情况1:云打包
如果我们是使用云打包,其实我们的代码是被打包成wgt的格式,放进了官方提供的壳子里,这种情况下,我们应该使用这个方式去获取versionCode appVersion信息
const getAppInfo = () => {plus.runtime.getProperty(plus.runtime.appid, function(wgtinfo) {console.log("云打包,安心打包方式获取设备信息:");console.log(wgtinfo);});}
情况2:自定义壳子
- 如果我们使用自定义壳子,自己使用uniapp提供的sdk做了一个原生壳子等方式的话,我们可以使用这个代码来获取versionCode appVersion信息,这里还可以区分环境查看信息
- hostVersion 是原生壳子里的配置版本号
- appVersion 是uniapp项目配置的版本号
const getAppBaseInfo = () => {let res = uni.getAppBaseInfo()console.log("其他方式打包获取APP信息");console.log(res);uni.showModal({title: "其他方式打包获取APP信息",content: JSON.stringify(res),});}
今天就写到这里啦~
- 小伙伴们,( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝ我们明天再见啦~~
- 大家要天天开心哦
欢迎大家指出文章需要改正之处~
学无止境,合作共赢
欢迎路过的小哥哥小姐姐们提出更好的意见哇~~
uniapp系列-uni.getAppBaseInfo() versionCode appVersion 值不对应该怎么解决?相关推荐
- uni-app关于uni.navigateTo的坑以及解决方案
我们在做的这个产品目前的结构是这样的,使用nvue编写的uni-app项目作为app端,使用vue编写的vue项目作为H5端.在app端一共有三个页面,分别为loading页面.setting页面.i ...
- uni-app用uni.chooseImage API调用相机或从相册中选择图片
uni-app用uni.chooseImage API调用相机或从相册中选择图片 chooseImage: function() {var _this = this;uni.chooseImage({ ...
- uniapp使用uni.createInnerAudioContext()实现在app 小程序 h5有声书的播放
实现读书软件的听书功能,适配app,小程序,h5 实现效果展示功能带你包括: 章节,倒计时,上一章,下一章,播放,暂停,倍速: uniapp官方uni.createInnerAudioContext( ...
- PDF签名系列(2):PDF的签名值到底存在哪里?
来源:PDF签名系列(2):PDF的签名值到底存在哪里? - 知乎 研究过PDF签名的同学应该见过下面这张图, 来自ADOBE的文档Acrobat_DigitalSignatures_in_PDF.p ...
- uni-app关于uni.setStorageSync和uni.setStorage踩坑
使用uni-app的uni.setStorageSync缓存数据报错: Error: setStorageSync:fail parameter `key`. Expected String with ...
- uniapp监测网络uni.onNetworkStatusChange uni.getNetworkType的使用区别
uniapp监测网络uni.onNetworkStatusChange & uni.getNetworkType的使用区别 阐述: 在实际项目开发中,难免会监测网络,下面来具体详解下小程序这两 ...
- ajax xmlhttp.responsetext,用ajax实现异步刷新,xmlHttp.responseText接到的值不对
用ajax实现异步刷新,xmlHttp.responseText接到的值不对 用ajax实现异步刷新,xmlHttp.responseText接到的值不对 js: var xmlHttp; var j ...
- STM32Gx系列进入NMI中断造成芯片死机的解决办法
STM32Gx系列进入NMI中断造成芯片死机的解决办法 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 STM32Gx系列进入NMI中断造成芯片死机的解决办法 前言 一.问 ...
- HP Envy系列重装系统时找不到磁盘驱动器的解决办法
HP Envy系列重装系统时找不到磁盘驱动器的解决办法 1.系统出现少量不正常,但可以进入桌面时: 采用硬盘法重装: 这种方法是最简单的,因为要解决上述的无法找到磁盘驱动器问题,只 ...
最新文章
- 同花顺函数API(转载)
- Angular NgRx MemoizedSelector的类型定义学习
- 一个封装比较完整的FTP类——clsFTP
- 如何在php中插入map热点,php中关于Map热点的运用
- Windows10+CUDA8.0+VS2015+CUDNN5下配置caffe
- C++STL::两种方式实现STL容器的reference语义
- java中调用 dll 动态库的简洁方法 JNative
- 关于面试,关于大学——大四狗的自述
- xpos兼容android最高版本,[原创]学习篇-xposed框架及高版本替代方案
- 利用python构建马科维茨_Markowitz投资组合之Python模拟
- 营销推广的好工具:博客营销
- 边缘计算是什么 优点
- C++ - priority_queue
- mip php,zblog php mip主题开发官方指南
- oCPC实践录 | oCPC产品设计与出价原理(1)
- 操作系统转载和注释___荷风听雨
- matlab画简单曲线,并进行标注、图例、加网格,等操作
- 通过淘宝链接获取解析获取商品id(淘宝API )
- 三分钟读懂双十二布局玩法,大促流量销量双翻倍so easy!
- 可重复读隔离级别如何解决脏读、不可重复读
热门文章
- 40岁,不想上班,干点什么生意合适?
- 详解CAN总线:CAN总线报文格式—数据帧
- SQL:结构化查询语言(Structured Query Language)。
- vmware16无法拖曳以及复制win11本机文件到ubuntu下的解决方案
- kali-linux vmwaretools 安装
- Microsoft Build 2020注册不仅是开放的,而且是免费的,实时的,是虚拟的,并且一切都为您服务
- 慢慢做一个模仿天猫网站-3
- 难道真的有人因为要分享squish测试工具而去学习QT吗
- css3蒲公英飘动效果_纯CSS3逼真的气球漂浮动画特效
- ABAP FICO F-37/F-47创建预收/预付款