uniapp 使用 uni-upgrade-center
做APP过程中,升级是一个比较重要的模块。升级包括整包升级和 wgt 资源升级。
本来是想自己写更新逻辑的,找到 uniapp 官方有一整套的从后端版本管理到 APP 端更新都有,所以就选用了官方推荐的。
uni-upgrade-center 分为两部分,Admin 管理后台和 APP 前台监测
一、uni-upgrade-center Admin
升级中心也是基于uniapp的项目。
根据官方插件说明就可以升级即可。可以查看插件市场。
主要的是 wgt 资源更新中关于 IOS的部分,审核、升级主要事项。
二、uni-upgrade-center-app
接下来着重说下 app 端的检查更新。
1、前提条件:有云服务空间,并创建 opendb-app-versions 数据库
2、从插件市场导入到项目的 uni_modules 中,完成后如下图:
3、绑定云服务空间
创建云开发环境:
创建完成后会有对应云环境目录,右键该目录关联云服务空间:
4、上传云函数
找到目录:/uni_modules/uni-upgrade-center-app/uniCloud/cloudfunctions/check-version
,右键=》上传部署
这样对应的云函数就已经上传到云服务空间,接下来就可以调用
5、添加升级更新页面
在 pages.json 中添加如下内容:
{ "path": "uni_modules/uni-upgrade-center-app/pages/upgrade-popup", "style": { "disableScroll": true, "app-plus": { "backgroundColorTop": "transparent", "background": "transparent", "titleNView": false, "scrollIndicator": false, "popGesture": "none", "animationType": "fade-in", "animationDuration": 200 } } }
这里是官方自带的更新页面(可以根据自己需求进行调整)
6、调用
直接在需要的地方调用如下代码:
<button class="doUpAPP">检查更新</button> import upAPP from '@/uni_modules/uni-upgrade-center-app/utils/check-update.js' doUpAPP(){ upAPP() }
调用起来还是比较方便的
注意
a、虽然都是现成的,但是代码逻辑是可以直接修改的,如检查版本逻辑(这个主要是云函数 checkVersion 中),更新逻辑(utils 中)
b、call-check-version 中传的版本号和后台管理中填的一致性问题
如果后台管理填的是 101 这样的,那么用 versionCode
如果后台管理填的是 ‘1.0.1’,那么需要用 version
c、wgt 资源更新问题
wgt 更新是有限制的,比较底层的或者原生的无法更新。如 版本号是无法更新的,虽然代码修改了,wgt 更新后还是对于 apk 基座的版本号;
后台管理中版本号的问题,wgt 和 apk 的版本号是可以一样的,比如都是 105,但是 wgt 打包时 manifest.json 中的版本要和后台管理中填写的一致;