uniapp更新版本

  • Post author:
  • Post category:uniapp


<script>
	export default {
		data() {
			return {
				version: 1.02,
			}
		},
		onLoad(option) {
			uni.getSystemInfo({
				success: (res) => {
					//检测当前平台,如果是安卓则启动安卓更新  
					if (res.platform == "android") {
						this.AndroidCheckUpdate();
					}
				}
			})
		},
		methods: {
			/**
			 * 安卓应用的检测更新实现
			 */
			AndroidCheckUpdate: function() {
				var _this = this;
				uni.request({
					//请求地址,设置为自己的服务器链接
					url: '',
					method: 'GET',
					data: {},
					success: resMz => {
						var server_version = resMz.data.data.version;
						_this.checkVersionToLoadUpdate(server_version, _this.version);
					},
					fail: (resMz) => {
						uni.showToast({
							title: resMz.errmsg,
							duration: 2000
						});
					},
					complete: () => {}
				});
			},
			/**
			 * 进行版本型号的比对 以及下载更新请求
			 * @param {Object} server_version 服务器最新 应用版本号
			 * @param {Object} curr_version 当前应用版本号
			 */
			//进行版本型号的比对 以及下载更新请求
			checkVersionToLoadUpdate: function(server_version, curr_version) {
				if (server_version > curr_version) {
					uni.showModal({
						title: "版本更新",
						content: '有新的版本发布,是否立即进行新版本下载?',
						confirmText: '立即更新',
						cancelText: '稍后进行',
						success: function(res) {
							if (res.confirm) {
								uni.showLoading({
									title: '正在下载。。。'
								})
								//设置 最新版本apk的下载链接
								var downloadApkUrl = "http://zyysrc.lianhenz.com/files/newbig1.apk";
								var dtask = plus.downloader.createDownload(downloadApkUrl, {}, function(d,
									status) {
									uni.hideLoading()
									if (status == 200) {
										uni.showModal({
											title: "提示",
											content: '已完成更新!',
											confirmText: '确定',
											showCancel: false,
											showCancel: false,
											success: function(res) {
												if (res.confirm) {
													var fileSaveUrl = plus.io
														.convertLocalFileSystemURL(d
															.filename)
													plus.runtime.install(plus.io
														.convertLocalFileSystemURL(
															d.filename), {}, {},
														function(error) {
															uni.showModal({
																title: "提示",
																content: '安装失败!',
																confirmText: '确定',
																showCancel: false,
															})
														})
												}
											}
										})
									} else {
										uni.showModal({
											title: '提示',
											content: '更新失败',
											showCancel: false,
										});
										plus.downloader.clear(); //清除下载任务
									}
								});

								// 这里是监听下载进度,可以自己生成进度条,根据自己需求选择是否需要
								// dtask.addEventListener("statechanged", function(task, status) {
								// 	if (!dtask) {
								// 		uni.showModal({
								// 			content: '!dtask',
								// 		});
								// 		return;
								// 	}
								// 	switch (task.state) {
								// case 1:
								// 	uni.showToast({
								// 		title: '开始下载...',
								// 	});
								// 	break;
								// case 2:
								// 	uni.showToast({
								// 		title: '正在下载...',
								// 	});
								// 	break;
								// 		case 3: // 已接收到数据
								// 			var progressVal = (task.downloadedSize / task
								// 				.totalSize) * 100;
								// 			uni.showLoading({
								// 				title: Number(progressVal) + "%",
								// 				duration:2000
								// 			});
								// 			break;
								// 		case 4:
								// 			dtask = null;
								// 			break;
								// 	}
								// });
								// 开始下载
								dtask.start();
							} else if (res.cancel) {
								console.log('稍后更新');
							}
						},
					});
				}
			},
		}
	}
</script>



版权声明:本文为swx999原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。