6***@qq.com
6***@qq.com
  • 发布:2018-10-15 15:09
  • 更新:2022-02-11 11:22
  • 阅读:28396

uni APP自动更新并安装

分类:uni-app
data:function(){  
			return{  
				version:1  
			}  
		},  
onLoad: function () {	  
			uni.getSystemInfo({  
				success:(res) => {  
					console.log(res.platform);  
					//检测当前平台,如果是安卓则启动安卓更新  
					if(res.platform=="android"){  
						this.AndroidCheckUpdate();  
					}  
				}  
			})  
		},  
		methods: {  
			AndroidCheckUpdate:function(){  
				var _this=this;  
				uni.request({  
					url: 'http://xxxx.com/version.txt',  
					method: 'GET',  
					data: {},  
					success: res => {  
						if(res.data>this.version){  
							if(plus.networkinfo.getCurrentType()!=3){  
								uni.showToast({  
									title: '有新的版本发布,检测到您目前非Wifi连接,为节约您的流量,程序已停止自动更新,将在您连接WIFI之后重新检测更新。',  
									mask: false,  
									duration: 5000,  
									icon:"none"  
								});  
								return;  
							}  
							uni.showToast({  
								title: '有新的版本发布,检测到您目前为Wifi连接,程序已启动自动更新。新版本下载完成后将自动弹出安装程序。',  
								mask: false,  
								duration: 5000,  
								icon:"none"  
							});  
							var dtask = plus.downloader.createDownload( "http://xxxx.com/app.apk", {}, function ( d, status ) {  
									// 下载完成  
									if ( status == 200 ) {   
										plus.runtime.install(plus.io.convertLocalFileSystemURL(d.filename),{},{},function(error){  
											uni.showToast({  
												title: '安装失败',  
												mask: false,  
												duration: 1500  
											});  
										})  
									} else {  
										 uni.showToast({  
										 	title: '更新失败',  
										 	mask: false,  
										 	duration: 1500  
										 });  
									}    
								});  
							dtask.start();   
						}  
					},  
					fail: () => {},  
					complete: () => {}  
				});  
			},  
		}
24 关注 分享
崔先生 l***@163.com DCloud_heavensoft Geeker 沧桑 1***@qq.com 8***@qq.com 喜欢技术的前端 2***@qq.com 罪途 1***@qq.com bugAT HealerLZH foolma 雨夜敬清秋 7***@qq.com 涂1 qiang98 6***@qq.com 刃吹雪 Yacheck 1***@qq.com 1***@qq.com 1***@163.com

要回复文章请先登录注册

2***@qq.com

2***@qq.com

http://xxxx.com/version.txt 请问一下这个链接里面请求的内容是什么呀,大家方便分享一下吗
2022-02-11 11:22
天赋一饼

天赋一饼

回复 7***@qq.com :
uni安卓自带,你如果运行在浏览器就会报这个错,应该跑在模拟器或者真机调试
2021-07-06 11:49
Syusuke

Syusuke

收藏
2021-04-10 09:57
ad_yfq

ad_yfq

补充一个现实更新进度的方法
var prg = 0;
var showLoading = plus.nativeUI.showWaiting("正在下载");
dtask.addEventListener('statechanged', function(task,status) {
// 给下载任务设置一个监听 并根据状态 做操作
switch (task.state) {
case 1:
showLoading.setTitle("正在下载");
break;
case 2:
showLoading.setTitle("已连接到服务器");
break;
case 3:
prg = parseInt(
(parseFloat(task.downloadedSize) /
parseFloat(task.totalSize)) *
100
);
showLoading.setTitle("版本更新,正在下载" + prg + "% ");
break;
case 4:
plus.nativeUI.closeWaiting();
//下载完成
break;
}
});
楼主,我想问一下为什么我的下载安装成功后,发现并没有覆盖旧版本,也没有生成新的版本?
2021-01-20 11:02
罗马队长

罗马队长

回复 1***@qq.com :
APPID如果重复会自动覆盖
2020-12-14 11:01
1***@qq.com

1***@qq.com

回复 1***@qq.com :
再补充一个,下载可以使用uni.downloadFile结合progress组件做进度显示
2020-11-03 11:10
1***@qq.com

1***@qq.com

补充个获取app应用版本号方法,也是从别的地方看到的,组合一起就更完美了
plus.runtime.getProperty(plus.runtime.appid,(wgtinfo)=>{
console.log(JSON.stringify(wgtinfo));
console.log(wgtinfo.version);//应用版本号
});
2020-11-03 11:07
1***@qq.com

1***@qq.com

回复 7***@qq.com :
只有在app端才有这个方法
2020-09-18 15:29
gftttrrtrt4

gftttrrtrt4

回复 7***@qq.com :
app端才有这个变量
2020-06-24 09:23
7***@qq.com

7***@qq.com

楼主 我想请教一下 plus.方法 这个plus变量是怎么引进来调用的啊 为什么我的一直报找不到该变量
2020-06-24 09:17