UNI-APP APP应用强制更新及版本管理

第一步调用UNIAPP内置的uni.getSystemInfo方法获取系统类别,此处用到了条件编译,因为下面的方法只有在手机端才可适用

	onLaunch() {
		
			//#ifdef APP-PLUS
			let that = this;
			uni.getSystemInfo({
				success: (res) => {
					console.log(res.platform);
					if (res.platform == "android") {
						that.AndroidCheckUpdate();
					} else if (res.platform == 'ios') {
						that.IosUpdate()
					}
				}
			})
			//#endif
		},

只需在后台配置返回可用版本列表即可,在APP应用端进行查询,做版本管理

UNIAPP的APP包版本号为如1.3.5、2.X.X

封装判断版本号方法:当前版本号已是最新返回0,有最新版本号返回-1

	//封装判断版本号
			compareVersion(v1, v2) {
				if (v1 == v2) {
					return 0;
				}
				const vs1 = v1.split(".").map(a => parseInt(a));
				const vs2 = v2.split(".").map(a => parseInt(a));
				const length = Math.min(vs1.length, vs2.length);
				for (let i = 0; i < length; i++) {
					if (vs1[i] > vs2[i]) {
						return 1;
					} else if (vs1[i] < vs2[i]) {
						return -1;
					}
				}

				if (length == vs1.length) {
					return -1;
				} else {
					return 1;
				}
			},

 安卓调用判断强制更新方法

	async AndroidCheckUpdate() {
				let _this = this;
				let version = plus.runtime.version;
				this.systemType = 1
				await this.searchVersion()
				//调用后端接口,返回所有可用的APP版本
				this.updateContent = '更新内容:1.XXX 2.XXXX'
				let newVersion = '1.3.1'
				//模拟最新版本号为1.3.1 和更新内容

				let flag
				let hasNewVersion = this.compareVersion(version, newVersion)
				//调用封装方法判断当前版本是否为最新版本,是返回0,不是返回-1
				let canList = []

				//this.versionList 为后端返回的可用版本列表
				this.versionList.forEach(item => {
					canList.push(item.latestVersion)
				})
				//此处判断当前版本是否在可用版本列表范围内
				if (canList.includes[version]) {
					flag = true
				} else {
					flag = false
				}


				if (flag && (hasNewVersion == -1)) {
					//当前版本不是最新版本,但是可以继续使用,给与用户提

你可能感兴趣的:(javascript,vue.js,uni-app,前端)