<script>
	import {
		config
	} from '@/common/config.js';
	export default {
		data() {
			return {
				downloadUrl: ''
			}
		},
		onLaunch: function() {
			console.log('App Launch')
		},
		onShow: function() {
			console.log('App Show')
			this.getDownloadUrl();
		},
		methods: {
			/**
			 * 通过参数设置获取最新版本信息
			 */
			getVersion() {
				const _this = this
				uni.$u.api.getParameterApi({
					key: 'parking.operation.version'
				}).then(res => {
					if (res.code === 200) {
						if (res.msg !== config.version) {
							uni.getNetworkType({
								success: function (res) {
									if (res.networkType === 'wifi') {
										uni.showModal({
											title: '版本发布更新',
											content: '发现新版本且您使用的是无限网络，是否进行更新?',
											confirmText: '更新',
											confirmColor: '#EE8F57',
											success: (res) => {
												if (res.confirm) {
													_this.downloadAppFile()
												}
											}
										})
									} else {
										uni.showModal({
											title: '版本发布更新',
											content: '发现新版本，是否继续消耗流量进行更新?',
											confirmText: '更新',
											confirmColor: '#EE8F57',
											success: (res) => {
												if (res.confirm) {
													_this.downloadAppFile()
												}
											}
										})
									}
								}
							});
						}
					}
				})
			},
			/**
			 * 通过参数设置获取最新下载链接
			 */
			getDownloadUrl() {
				uni.$u.api.getParameterApi({
					key: 'parking.operation.package'
				}).then(res => {
					if (res.code === 200) {
						this.downloadUrl = res?.msg
						this.getVersion();
					}
				})
			},
			/**
			 * 下载文件
			 */
			downloadAppFile() {
				const _this = this
				uni.showLoading({
					mask: true,
					title: '下载中...'
				})
				let downloadTask = uni.downloadFile({ // 执行下载
					url: _this.downloadUrl,
					success: downloadResult => {
						// 下载成功
						if (downloadResult.statusCode === 200) {
							uni.showModal({
								title: '',
								content: '下载成功，确定现在安装吗？',
								confirmText: '安装',
								confirmColor: '#EE8F57',
								success: function(res) {
									if (res.confirm) {
										plus.runtime.install( // 安装
											downloadResult.tempFilePath, {
												force: true
											},
											function() {
												plus.runtime.restart();
												uni.navigateBack()
											},
											function(e) {
												utils.showToast('安装失败');
											}
										);
									}
								}
							});
						}
					},
					complete: (res) => {
						uni.hideLoading();
					}
				});
				downloadTask.onProgressUpdate((res) => {
					if (res.progress === 100) {
						uni.hideLoading();
					}
				});
			}
		},
		onHide: function() {
			console.log('App Hide')
		},
	}
</script>

<style lang="scss">
	/*每个页面公共css */
	@import "@/uni_modules/uview-ui/index.scss";
</style>
