uni-app 自动检测版本升级

uni-app 自动检测版本升级 (安卓)

进入app登录页面检测系统版本是否是新版本,如果不是新版本,下载安装包,安装新版本。

checkVersion() {
	try{
		let self=this;
		console.log("checkVersion");
		let params={
			"appid": plus.runtime.appid,
			"version": plus.runtime.version,  //应用版本名称
			"imei": plus.device.imei
		}
		var oldversion = plus.runtime.version;
		console.log(params);
		//检查是否是新版本
		util.post(this.url+'/app/checkAppversion',params).then(res => {
			console.log(res);
			if(res.data.code=='200'){
				if (res.data.data.update==1) {
					uni.showModal({
						title: oldversion+'版本更新',
						content:'检测到新版本,请更新程序',
						showCancel: false,
						success: function (result) {
						    if (result.confirm) {
						        uni.showLoading({
						        	title:'请稍候,安装包下载中...'
						        })
						       
						        //self.updateMsg="请稍候,文件下载中..."
						        console.log(res.data.data.url);
						        var dtask = plus.downloader.createDownload(res.data.data.url, {}, function ( d, status ) {
						        	uni.hideLoading();
									
						        	// 下载完成
						        	console.log(d);
						        	if ( status == 200 ) { //下载成功后的回调函数
						        		var path=d.filename;
						        		//安装程序,第一个参数是路径,默认的下载路径在_downloads里面
						        		plus.runtime.install(path,{},function(){
						        			plus.runtime.restart();
						        		},function(){
						        			//self.updateMsg="安装失败"
						        			uni.showToast({
						        				title:'安装失败',
						        				icon: 'none'
						        			})
						        		});
						        		plus.nativeUI.closeWaiting();
						        	} else {
						        		//self.updateMsg= "安装包下载失败 " + status; 
						        		uni.showToast({
						        			title:'安装包下载失败' + status,
						        			icon: 'none'
						        		})
						        	}  
						        });
						        dtask.start();
						    } else if (res.cancel) {
						        console.log('用户点击取消');
						    }
						}
					})
					
				}else{
					
				}
			}
		}).catch(err => {
			console.error(err)
		})
		

	}catch(e){}
}

校验版本信息,我这里是直接把新版本信息与安装包路径写在了程序中,后续会迁移到配置文件中,容易管理些。

@PostMapping("/checkAppversion")
	public ResultEntity checkAppversion(@RequestBody AppInfo data) {
		if(!data.getVersion().equals("1.0.3")){
			data.setUpdate("1");
			data.setUrl("http://xxx.xxx.x.xxx:8088/pda/pda1.0.3.apk");
		}
		
		ResultEntity returnSuccess = returnSuccess(data);
		return returnSuccess;
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值