zoukankan      html  css  js  c++  java
  • uniapp检查更新并显示下载进度

    
    uni.request({
    	url: "http://2132",  //请求更新地址
    	data: '',
    	success(res) {
    		if (!!res.data) {
    			uni.showModal({
    				title: '版本更新' + res.data.versionCode,
    				content: res.data.description,
    				confirmText: "更新",
    				showCancel: !res.forceUpdate,
    				success: function(e) {
    					if (e.confirm) {
    						if (plus.os.name.toLowerCase() == 'ios') {
    							// 跳转到下载页面
    							plus.runtime.openURL(res.data.upgradeUrl)
    						} else {
    							var dtask = plus.downloader.createDownload(
    								res.data.upgradeUrl, {},
    								function(d, status) {
    									uni.showToast({
    										title: '下载完成',
    										mask: false,
    										duration: 1000
    									});
    									// 下载完成
    									if (status == 200) {
    										plus.runtime.install(plus.io.convertLocalFileSystemURL(d.filename), {}, e => e, function(error) {
    											uni.showToast({
    												title: '安装失败-01',
    												mask: false,
    												duration: 1500
    											});
    										})
    									} else {
    										uni.showToast({
    											title: '更新失败-02',
    											mask: false,
    											duration: 1500
    										});
    									}
    								});
    							 try {
    								dtask.start(); // 开启下载的任务
    								var prg = 0;
    								var showLoading = plus.nativeUI.showWaiting("正在下载");  //创建一个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;
    								  }
    								});
    							  } catch (err) {
    								  plus.nativeUI.closeWaiting();
    								  uni.showToast({
    								  	title: '更新失败-03',
    								  	mask: false,
    								  	duration: 1500
    								  });
    							  }
    						}
     
    					} else {
    						//取消
    					}
    				}
    			});
    		} else {
    			uni.showModal({
    						    title: '提示',
    						content: '已是最新版本',
    						showCancel: false
    					});
    		}
    	},
    })
    
    

    ————————————————
    版权声明:本文为CSDN博主「骑着代码去流浪」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_36185028/article/details/103126680

  • 相关阅读:
    jQuery之选择器
    JAVA之网页截屏
    AJAX之JSON
    JSP之AJAX
    JSP之邮箱检验
    【16】LRUChache
    hashmap与currentHashMap
    Day1 工厂模式
    D0 设计模式
    【15】【有点特殊的dp】 剪绳子
  • 原文地址:https://www.cnblogs.com/axingya/p/15273024.html
Copyright © 2011-2022 走看看