uniapp实现自动更新

一:先判断安卓还是IOS

mounted() {
	let that = this;
	uni.getSystemInfo({
		success:(res) => {  
			console.log(res.platform);  
			//检测当前平台,如果是安卓则启动安卓更新  
			if(res.platform=="android"){  
				that.AndroidCheckUpdate();  
			}  
		}  
	})

二:调用连接获取下载路径查询版本信息

methods: {
	AndroidCheckUpdate:function(){  
		var _this=this;
		//获取当前app版本信息
		var version = plus.runtime.version;
		console.log(version);
		uni.request({  
			//获取服务器的版本信息
			url: 'http://***.***.***.***:8080/test/test.txt',  
			method: 'GET',  
			data: {},  
			success: res => {  
				console.log("现在的版本"+version+"数据库版本"+res.data+"进入查找app版本");
				if(res.data>version){  
					plus.nativeUI.confirm("检测到有新版本,是否更新",function(e){
						if(e.index==0){
							if(plus.networkinfo.getCurrentType()!=3){
								plus.nativeUI.confirm("检测到您目前非Wifi连接,是否继续更新",function(e){
									if(e.index==0){
										_this.downWgt();
									}else{
										
									}
								},"",)["取消","确定"]
								return;  
							}  
							_this.downWgt();//下载文件
						}else{
							//plus.runtime.quit();//安卓控制不更新退出应用
							
						}
					},"",["立即更新","以后再说"]);
					
					//dtask.start();   
				}  
			},  
			fail: () => {
				uni.showToast({
					title: '调用请求失败',  
					mask: false,  
					duration: 5000,  
					icon:"none"  
				});  
			},  
			complete: () => {}  
		});  
	},
} 

三:启动下载和下载监听

downWgt:function(){
	var that=this;		
	var task = plus.downloader.createDownload( "http://***.***.***.***:8080/test/test.apk", {}, function ( d, status ) {
			console.log("准备下载");
			// 下载完成  
			if ( status == 200 ) { 
				plus.runtime.install(d.filename);  // 安装下载的apk文件
			} else {
				mui.toast("下载更新失败!");
				plus.nativeUI.closeWaiting();
			}
		//监听下载
		task.addEventListener("statechanged", function (download, status) {
			switch (download.state) {
				case 2:
					console.log("正在下载");
					plus.nativeUI.showWaiting("正在下载...");
					break;
				case 3:
					//console.log("进度进度读取"+download.downloadedSize/that.totalSize*100);
					//进度条百分比 totalSize为总量,baifen为当前下载的百分比
					if(that.totalSize==0){
					  that.totalSize=parseInt(download.totalSize);
					}
					if(parseInt(download.downloadedSize/that.totalSize*100)!=that.baifen){
					   that.baifen=parseInt(download.downloadedSize/that.totalSize*100);
					   plus.nativeUI.showWaiting("正在下载:"+that.baifen+"%");
					}						    
					break;
				case 4:
					console.log("下载完成");
					mui.toast("下载完成");
					plus.nativeUI.closeWaiting();
					break;
			}
		});
		task.start();
},
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值