<script>
import { config } from '@/common/config.js';
export default {
	data() {
		return {
			downloadUrl: '',
			version: ''
		};
	},
	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) {
						this.version = res.msg
						if (res.msg !== config.version) {
							uni.getNetworkType({
								success: function(res) {
									if (res.networkType === 'wifi') {
										_this.downloadAppFileByBackstage()
									} else {
										uni.showModal({
											title: '提示',
											content: '当前网络非WIFI,继续更新可能会产生流量,确认要更新吗？',
											confirmText: '更新',
											confirmColor: '#EE8F57',
											success: res => {
												if (res.confirm) {
													_this.downloadAppFileByBackstage()
												}
											}
										});
									}
								}
							});
						}
					}
				});
		},
		/**
		 * 通过参数设置获取最新下载链接
		 */
		getDownloadUrl() {
			uni.$u.api
				.getParameterApi({
					key: 'parking.operation.package'
				})
				.then(res => {
					if (res.code === 200) {
						this.downloadUrl = res?.msg;
						this.getVersion();
					}
				});
		},
		/**
		 * 下载app通过downloadFile
		 */
		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();
				}
			});
		},
		/**
		 * 下载app通过后台任务栏
		 */
		downloadAppFileByBackstage() {
			uni.$u.route({
				url: 'pages/appUpdate/appUpdate',
				params: {
					downloadUrl: this.downloadUrl,
					version: this.version
				}
			})
		},
		/**
		 * 下载app通过浏览器
		 */
		downloadAppFileByBrowser() {
			// #ifdef APP-PLUS
			plus.runtime.openURL(this.downloadUrl);
			// #endif
		}
	},
	onHide: function() {
		console.log('App Hide');
	}
};
</script>

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