uni-app APP 检测系统是否更新并下载更新安装

一功能方法的形式

/**
* checkVersion 是后端检测是否的接口
* isShow 为Boolean值 false:在首页自动调用 true:通过检测按钮触发调用
*/

const util = {}
util.checkVersionToLoadUpdate = function(plus, isShow) {
	const version = store.state.app.appInfo.versionCode;
	checkVersion(version).then(response => {
		const {
			code,
			data,
			msg
		} = response;
		if (code === 200) {
			uni.showModal({
				title: '版本更新',
				content: '已有最新版本,是否更新?',
				confirmText: '立即更新',
				cancelText: '稍后更新',
				success: function (res) {
					if (res.confirm) {
						plus.nativeUI.toast("正在准备环境,请稍后!");
						const dtask = plus.downloader.createDownload(data.url, {filename:"_doc/update/"}, function(d, status) {
							if (status == 200) {
								plus.runtime.install(d.filename);
							} else {
								plus.nativeUI.alert('版本更新失败:' + status);
							}
						});
						try {
							dtask.start();
							let prg = 0;
							let 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;
								}
							});
						} catch (err) {
							plus.nativeUI.closeWaiting();
							uni.showToast({
								title: '更新失败',
								mask: false,
								duration: 1500
							});
						}
					} else if (res.cancel) {
						console.log('稍后更新');
					}
				}
			})
		} else {
			if (isShow) {
				uni.showToast({
					duration: 3000,
					mask: true,
					icon: 'none',
					title: msg
				});
			}
		}
	}).catch(err => {
		console.log(err);
	});
}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值