<!--

App.vue本身不是页面，这里不能编写视图元素，也就是没有<template>
-->
<script setup>
import { onLaunch } from '@dcloudio/uni-app';
import { getVersion } from '@/http/api/index.js';
import appConfig from '@/config/appConfig.js';
import { provide, onMounted } from 'vue';
import WebsocketUtil from '@/commons/utils/websocket.js';

console.log('appConfig.wss',appConfig.wss);
const websocketUtil = new WebsocketUtil(appConfig.wss, 5000); // 创建 WebSocket 工具类实例
provide('websocketUtil', websocketUtil); // 提供给所有子组件
onMounted(() => {});
onLaunch(() => {
	// 非开发工具移除 console.log console.info
	// if (uni.getSystemInfoSync().platform !== "devtools") {
	// 	console.log = () => {};
	// 	console.info = () => {};
	// }
	let that = this;
	uni.hideTabBar();
	// #ifdef MP-WEIXIN
	const updateManager = wx.getUpdateManager(); // 小程序版本更新管理器
	updateManager.onCheckForUpdate(function (res) {
		// 请求完新版本信息的回调
	});
	updateManager.onUpdateReady(function () {
		// 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
		updateManager.applyUpdate();
	});
	updateManager.onUpdateFailed(function () {
		// 新版本下载失败
	});
	// #endif
	// console.log("getSystemSetting==",uni.getSystemInfoSync())
	// console.log("getSystemSetting==",uni.getSystemSetting())

	//#ifdef APP-PLUS
	//获取当前系统版本信息
	plus.runtime.getProperty(plus.runtime.appid, (widgetInfo) => {
		//请求后台接口 解析数据 对比版本
		console.log('widgetInfo==', widgetInfo);
		let type = uni.getSystemInfoSync().platform == 'ios' ? 2 : 1;
		getVersion({ source: 'manager_app', type: type })
			.then((res) => {
				console.log('selectNewApp==', res);
				console.log('version===', res.url && widgetInfo.version < res.version);
				if (res.url && widgetInfo.version < res.version) {
					console.log('version===222');
					let downloadLink = res.url;
					// let downloadLink = "https://short-video.hnsiyao.cn/app/sy-duanju.apk";
					console.log(downloadLink);
					// let androidLink = res.androidWgtUrl;
					// let iosLink = res.iosWgtUrl;
					let ready = false;
					// 校验是否强制升级
					if (res.isUp == 1) {
						uni.showModal({
							showCancel: false,
							title: '发现新版本',
							confirmText: '立即更新',
							content: res.message,
							success: (res) => {
								if (res.confirm) {
									uni.showLoading('下载中...');
									if (uni.getSystemInfoSync().platform == 'android') {
										uni.downloadFile({
											url: downloadLink,
											success: (downloadResult) => {
												if (downloadResult.statusCode === 200) {
													plus.io.resolveLocalFileSystemURL(downloadResult.tempFilePath, (entry) => {
														entry.getParent((_oldFile) => {
															entry.moveTo(_oldFile, '.apk', (newFilePath) => {
																console.log('newFilePath', newFilePath.fullPath);
																plus.runtime.install(
																	newFilePath.fullPath,
																	{ force: false },
																	(d) => {
																		console.log('install success...');
																		plus.runtime.restart();
																	},
																	(e) => {
																		console.log(e);
																		console.error('install fail...');
																	}
																);
															});
														});
													});
												}
											}
										});
									}
									if (uni.getSystemInfoSync().platform == 'ios') {
										plus.runtime.openURL(downloadLink, function (res) {});
									}
								} else if (res.cancel) {
									console.log('取消');
								}
							}
						});
					} else {
						uni.showModal({
							title: '发现新版本',
							confirmText: '立即更新',
							cancelText: '下次更新',
							content: res.message,
							success: (res) => {
								if (res.confirm) {
									uni.showLoading('下载中...');
									if (uni.getSystemInfoSync().platform == 'android') {
										uni.downloadFile({
											url: downloadLink,
											success: (downloadResult) => {
												if (downloadResult.statusCode == 200) {
													plus.io.resolveLocalFileSystemURL(downloadResult.tempFilePath, (entry) => {
														entry.getParent((_oldFile) => {
															entry.moveTo(_oldFile, '.apk', (newFilePath) => {
																console.log('newFilePath', newFilePath.fullPath);
																plus.runtime.install(
																	newFilePath.fullPath,
																	{ force: false },
																	(d) => {
																		console.log('install success...');
																		plus.runtime.restart();
																	},
																	(e) => {
																		console.log(e);
																		console.error('install fail...');
																	}
																);
															});
														});
													});
												}
											}
										});
									}
									if (uni.getSystemInfoSync().platform == 'ios') {
										plus.runtime.openURL(downloadLink, function (res) {});
									}
								} else if (res.cancel) {
									console.log('取消');
								}
							}
						});
					}
				}
			})
			.catch((res) => {
				console.log(res);
			});
	});

	// #endif
});
</script>

<style lang="scss">
@import 'uview-plus/index.scss';

/** 每个页面公共css */
@import '@/commons/style/global.scss';
@import '@/commons/style/common.scss';

/**  uni 组件样式覆盖 */
@import '@/commons/style/uni-overwrite.scss';

// 优惠券插槽公用样式
.my-coupon-item-list {
	padding-bottom: 28upx;
	.my-coupon-item-item {
		&:not(:first-child) {
			margin-top: 28upx;
		}
		.my-coupon-item-row-wrap {
			.row {
				display: flex;
				&:not(:first-child) {
					margin-top: 12upx;
				}
				.title {
					width: 180upx;
					font-size: 28upx;
					color: #666;
				}
				.info {
					flex: 1;
					font-size: 28upx;
					color: #333;
					padding-left: 28upx;
				}
			}
		}
	}
}

// u-form card专用样式
.u-form-card {
	background-color: #fff;
	border-radius: 20upx;
	padding: 0 28upx 14upx;
	margin-bottom: 28upx;
	:deep(.u-form-item__body__left__content__label.data-v-b4fd400b) {
		font-weight: bold;
	}
}
</style>
