uniapp升级中心 uni-upgrade-center的使用步骤

一、后台管理页面
1、首先安装uni-admin作为控制应用的后台系统。
image

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

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

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

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

image

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

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

三、安装uni-upgrade-center插件
升级中心分为两个部分:uni-upgrade-center Admin管理后台 和 uni-upgrade-center-app前台检测更新。

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

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

image

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

四、配置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。
image

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

image
image

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

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

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

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

选择发布原生APP安装包。

image

然后按需填写内容,版本号不是一定要跟app版本号保持一致,但是尽量保持一致,防止后续更新版本,记错版本号之类的。(打包app前,也需在mainifest.json里修改一下版本号)

如果你这边版本号写的1.0.1,但是打包上传的app版本号是1.0.0,就会造成一直更新 ,即便用户更新了,还是会更新,因为你app的版本号没有跟上。

image

之后你的app也可以通过下载链接去下载安装包。

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

image

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

posted @ 2025-08-25 17:31  李秋风  阅读(404)  评论(0)    收藏  举报