4,uniapp功能之——APP更新,打包上线安装后的app的随时更新,页面实时显示当前更新的百分比

9 篇文章 6 订阅
6 篇文章 1 订阅

App.vue这文件都有吧,当然,也可以写在其他页面,看项目需求了。
思路:第一个方法调接口返回来的是版本号和新的版本链接,将这个版本号与当前app的版本号进行比较,接口返回的版本号大于当前的版本号就弹窗提示用户有新版本了,要进行更新了,弹框有两个按钮,“立即更新”, “以后再说”],立即更新就跳转链接进行更新,链接的地址就是接口返回过来的地址,赋值就可以了,以后再说就代表用户不更新,不更新可以让他继续使用这个软件,我这里是强制更新,不更新就退出软件,
第二个方法就是下载新版本app了,等他下完就可以进行安装。
一遍看不懂就看两遍,两遍看不懂就看三遍,三遍看不懂就别看了,浪费时间。赶紧做下一个功能。

<script>
import {$POST} from "static/js/https.js"
export default {
	data() {
		return {
			version:'',
			sjAppUrl:''
		}
	},
	methods: {
		CheckUpdate(data) {
			//获取当前app版本信息
			plus.runtime.getProperty(plus.runtime.appid, (wgtinfo) => {
				this.version = wgtinfo.version;
				$POST("selectSjAppVersion","",data).then(data=>{
					this.sjAppUrl = data.result.appUrl;//新版本下载地址
						if (data.result.appVersion > this.version) {
							plus.nativeUI.confirm("检测到有新版本,是否更新", (e)=> {
								if (e.index == 0) {
									if (plus.networkinfo.getCurrentType() != 3) {
										plus.nativeUI.confirm("检测到您目前非Wifi连接,是否继续更新", (e)=> {
											if (e.index == 0) {
												this.downWgt();//下载文件
											}else{
												plus.runtime.quit();//安卓控制不更新退出应用
											}
										}, "", ["确定", "取消"]);
									}
									this.downWgt(); //下载文件
								} else {plus.runtime.quit()};//安卓控制不更新退出应用
							}, "", ["立即更新", "以后再说"]);
						}
					}
				})
			})
		},
		downWgt() {
			let dtask = plus.downloader.createDownload( this.sjAppUrl, {method:"GET"});
			var prg = 0;
			var showLoading = plus.nativeUI.showWaiting("正在下载");
			dtask.addEventListener("statechanged",  (task,  status)=>  {
				if (!dtask) { return }   
				switch (task.state) {
					case 1:
						showLoading.setTitle("正在下载");
						break;
					case 2:
						showLoading.setTitle("已连接到服务器");
						break;
					case 3:
						var prg = parseInt((parseFloat(task.downloadedSize)/parseFloat(task.totalSize)) * 100);
						showLoading.setTitle("正在下载" + prg + "%,请耐心等待...");
						break;
					case 4:
						plus.nativeUI.closeWaiting();
						plus.runtime.install(task.filename);
						break;
				}
			},false);  
			dtask.start(); 
		},
	},
	mounted() {
		this.CheckUpdate(res.data.token);
	}
}
</script>

没了,结束了,是不是很简单呐,如有问题,欢迎留言。
最后:如果此篇博文对您有帮助,还请动动小手点点关注点点赞呐~,谢谢 ~ ~

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨同学*

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值