uniapp升级中心 uni-upgrade-center的使用步骤
一、后台管理页面
1、首先安装uni-admin作为控制应用的后台系统。

2、创建后会需要绑定云服务空间。
服务空间可以去https://unicloud.dcloud.net.cn/pages/login/login申请,阿里云还是提供了一个免费的服务空间。

3、依次点击下一步,等待部署完毕。第一次使用需要等待数据库初始化完毕,耗时较长。

二、app页面
1、新建一个uniapp普通项目,作为app的打包项目。

2、新建完成后,右键该项目,创建uniclude云开发环境。
云环境选择与上面的后台管理 云环境一样即可。

3、右键创建好的unicloud文件夹,选择关联云服务空间或项目。

此时选择绑定到其他项目的服务空间,然后选择上面的后台管理页面进行关联。

三、安装uni-upgrade-center插件
升级中心分为两个部分:uni-upgrade-center Admin管理后台 和 uni-upgrade-center-app前台检测更新。
其中uni-upgrade-center - Admin已经内置在uni-admin中,如果你的uni-admin没有“升级中心”,说明你的后台管理页面可能没有该插件。(下面只展示前台检测更新的导入,后台同理)

来到插件页面,选择下载插件并导入。

这个要选择app页面,因为这个是负责前台检测更新的。

四、配置app页面。
1、首先需要在pages.json里的pages加入下述代码。(注意:不要放在第一项,第一项是启动项。)
点击查看代码
{
"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
}
}
}
]
}
2、在需要判断更新版本的页面加入checkUpdate函数,代码如下:
点击查看代码
<template>
<view>
</view>
</template>
<script>
import checkUpdate from '@/uni_modules/uni-upgrade-center-app/utils/check-update'
export default {
onLoad() {
checkUpdate()
}
}
</script>
<style>
</style>
我这里方便检测是否成功调用了升级中心,将index.vue改成如下格式方便检测问题。(根据uni_modules\uni-upgrade-center-app\utils下的call-check-version.ts得知判断版本更新需要appid、appVersion、widgetInfo.version)
点击查看代码
<template>
<view>
<view>appId:{{appId}}</view>
<view>appVersion:{{appVersion}}</view>
<view>widgetInfo:{{widgetInfo}}</view>
<button @click="checkisupdate">检测是否更新</button>
<view>{{errmsg}}</view>
</view>
</template>
<script>
import checkUpdate from '@/uni_modules/uni-upgrade-center-app/utils/check-update'
const systemInfo = uni.getSystemInfoSync()
export default {
data(){
return{
appId:systemInfo.appId,
appVersion:systemInfo.appVersion,
widgetInfo:{},
errmsg:""
}
},
methods: {
checkisupdate() {
checkUpdate().then((res)=>{
this.errmsg = res;
}).catch((err)=>{
this.errmsg = err;
})
}
},
onLoad() {
plus.runtime.getProperty(this.appId, (widgetInfo) => {
this.widgetInfo = widgetInfo
})
this.checkisupdate();
},
}
</script>
<style>
</style>
3、来到mainifest.json下勾一下x86,否则模拟器可能没办法安装app。

4、打包APP(云打包,本地打包都可以)


五、通过后台管理员页面配置后台与app的连接。
1、选择后台管理项目,运行到浏览器。

然后选择系统管理->应用管理,新增。(如果用着用着没这个页面了,可以去云服务看看是不是没免费的操作流量了。)

填写APPID和 应用名称后,往下拉,选择保存。

2、上传打包好的app到App升级中心(wgt包也是同理,不过要选择wgt资源包)。
选择APP升级中心,注意应用要是app的那个,然后点击发布新版。

选择发布原生APP安装包。

然后按需填写内容,版本号不是一定要跟app版本号保持一致,但是尽量保持一致,防止后续更新版本,记错版本号之类的。(打包app前,也需在mainifest.json里修改一下版本号)
如果你这边版本号写的1.0.1,但是打包上传的app版本号是1.0.0,就会造成一直更新 ,即便用户更新了,还是会更新,因为你app的版本号没有跟上。

之后你的app也可以通过下载链接去下载安装包。
六、测试。
可以将刚才的包再发布一次版本,版本号改为1.0.1(比1.0.0大就可以),此时之前安装了1.0.0版本app的用户就会收到更新,但是因为我们1.0.1还是用的1.0.0的包,用户不管怎么更新都还是会提示更新,不希望出现这种情况的话,就重新打包然后发布新的包即可。

此功能重点就在于两个项目之间的云关联,不然就没办法通过云函数判断是否是最新版。
转自https://blog.csdn.net/qq_30047687/article/details/147264919

浙公网安备 33010602011771号