snow 876895dd80 build | hai 2 semanas | |
---|---|---|
.. | ||
images | hai 2 semanas | |
pages | hai 2 semanas | |
static | hai 2 semanas | |
uniCloud | hai 2 semanas | |
utils | hai 2 semanas | |
changelog.md | hai 2 semanas | |
package.json | hai 2 semanas | |
pages_init.json | hai 2 semanas | |
readme.md | hai 2 semanas |
uni-admin
版本关系uni-admin >= 1.9.3
:云函数 checkVersion
废弃,使用 uni-admin 自带的 uni-upgrade-center
云函数。统一管理App及App在
Android
、iOS
平台上App安装包
和wgt资源包
的发布升级uni升级中心分为业务插件和后台管理插件。本插件为业务插件,包括uni升级中心客户端检查更新的前后端逻辑。后台管理系统另见 uni-upgrade-center - Admin
依赖数据库opendb-app-versions
,如果没有此库,请在云服务空间中创建。
使用HBuilderX 3.1.0+
,因为要使用到uni_modules
在插件市场打开本插件页面,在右侧点击使用 HBuilderX 导入插件
,选择要导入的项目点击确定
绑定一个服务空间
找到/uni_modules/uni-upgrade-center-app/uniCloud/cloudfunctions/check-version
,右键上传部署
在pages.json
中添加页面路径。注:请不要设置为pages.json中第一项
"pages": [
// ……其他页面配置
{
"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
}
}
}
]
将@/uni_modules/uni-upgrade-center-app/utils/check-update
import到需要用到的地方,调用一下即可
callFunction
。详情升级弹框可自行编写,也可以使用uni.showModal
,或使用现有的升级弹框样式,如果不满足UI需求请自行替换资源文件。在utils/check-update.js
中都有实例。
wgt更新时,打包前请务必将manifest.json中的版本修改为更高版本。
check-update.js
该函数在utils目录下
如果是静默更新,则不会打开更新弹框,会在后台下载后安装,下次启动应用生效
如果是 iOS,则会直接打开AppStore的链接
其他情况,会将check-version
返回的结果保存在localStorage中,并跳转进入upgrade-popup.vue
打开更新弹框
check-version
该函数在uniCloud/cloudfunctions目录下
使用检查更新需要传递三个参数 appid
、appVersion
、wgtVersion
appid
使用 plus.runtime.appid 获取,注:真机运行时为固定值HBuilder,在调试的时候请使用本地调试云函数
appVersion
使用 plus.runtime.version 获取
wgtVersion
使用 plus.runtime.getProperty(plus.runtime.appid,(wgtInfo) => { wgtInfo.version }) 获取
check-version
云函数内部会自动获取 App 平台
Tips
check-version
云函数内部有版本对比函数(compare)。
upgrade-popup.vue
- 更新应用:
check-version
返回的参数表明需要更新,则将参数保存在localStorage中,带着键值跳转该页面version
进行比较,如果相等则安装。大于和小于都不进行安装,因为admin端可能会调整包的版本。不符合更新会将此包删除call-check-version
check-version
拿取版本检测结果check-update
call-check-version
并根据结果判断是否显示更新弹框check-version
- 检查应用更新:
返回结果:
code | message |
---|---|
0 | 当前版本已经是最新的,不需要更新 |
101 | wgt更新 |
102 | 整包更新 |
-101 | 暂无更新或检查appid是否填写正确 |
-102 | 请检查传参是否填写正确 |