<script>
	// #ifdef APP-PLUS
	var jpushModule = uni.requireNativePlugin("JG-JPush");
	var audioObj = uni.getBackgroundAudioManager();
	// #endif
	import {
		iap
	} from "@/utils/myIapCheck.js";
	import store from "@/store/index.js";
	import socket from "@/config/socket";
	// #ifdef H5
	import {
		h5Login
	} from "@/config/html5Utils";
	// #endif
	// #ifdef APP-PLUS
	import updata from "@/uni_modules/uni-upgrade-center-app/utils/check-update";
	// #endif
	Vue.prototype.$apkUrl = "https://a.app.qq.com/o/simple.jsp?pkgname=com.cn.taimed" // 应用宝
	import Vue from "vue";
	export default {
		data() {
			return {
				platform: null, // 系统
				appRegisterMap: undefined,
			};
		},
		onLaunch: function() {
			// #ifdef APP-PLUS
			updata();
			plus.screen.lockOrientation("portrait-primary");
			// 检测自动更新


			// #endif
			uni.setStorageSync("isJump", null);
			// 禁止横屏

			uni.getSystemInfo({
				success(res) {
					Vue.prototype.winWidth = res.screenWidth;
					Vue.prototype.winHeight = res.screenHeight;
					Vue.prototype.statusBarHeight = res.statusBarHeight;
				},
			});


			//取出缓存数据
			store.commit("setCacheData");
			// #ifdef MP-WEIXIN
			if (store.state.userInfo.token) {
				socket.init();
			}
			// #endif
			// #ifdef H5
			if (store.state.userInfo.token) {
				socket.init();
			} else {
				h5Login("force", () => {
					socket.init();
				});
			}
			// #endif
			// #ifdef APP-PLUS
			if (store.state.userInfo.token) {
				socket.init();
			}
			// #endif
		},
		onShow: function(e) {
			// #ifdef APP-PLUS
			plus.screen.lockOrientation("portrait-primary");
			// 检测是否有未关闭苹果内购订单
			iap.getChannels()
			// #endif
			// #ifdef MP-WEIXIN
			//获取二维码携带的参数
			let scene = decodeURIComponent(e.query.scene);
			scene = scene.split("&");
			let data = {
				//场景值
				scene: e.scene,
			};
			scene.forEach((item) => {
				let arr = item.split("=");
				if (arr.length == 2) {
					data[arr[0]] = arr[1];
				}
			});
			store.commit("setChatScenesInfo", Object.assign(e.query, data));
			// #endif
		},
		methods: {
			// 处理通知权限
			getRegistrationID() { //获取registerID
				jpushModule.getRegistrationID(result => {
					let registerID = result.registerID
					console.log(registerID)
					this.registrationID = registerID
					uni.setStorageSync("registerID", registerID)
				})
			},
			getNotificationEnabled() {
				if (uni.getSystemInfoSync().platform == "ios") {
					jpushModule.requestNotificationAuthorization((result) => {
						let status = result.status
						if (status < 2) {
							this.noticMsgTool()
						}
					})
				} else {
					jpushModule.isNotificationEnabled((result) => { //判断android是否打开权限
						if (result.code == 0) { //如果为0则表示 未打开通知权限 
							this.noticMsgTool()
						}
					})
				}
			},
			noticMsgTool() {
				if (uni.getSystemInfoSync().platform == "ios") {
					//苹果打开对应的通知栏
					uni.showModal({
						title: '通知权限开启提醒',
						content: '您还没有开启通知权限，无法接受到消息通知，请前往设置！',
						showCancel: false,
						confirmText: '去设置',
						success: function(res) {
							if (res.confirm) {
								var app = plus.ios.invoke('UIApplication', 'sharedApplication');
								var setting = plus.ios.invoke('NSURL', 'URLWithString:', 'app-settings:');
								plus.ios.invoke(app, 'openURL:', setting);
								plus.ios.deleteObject(setting);
								plus.ios.deleteObject(app);
							}
						}
					});
				} else {
					//android打开对应的通知栏
					var main = plus.android.runtimeMainActivity();
					var pkName = main.getPackageName();
					var uid = main.getApplicationInfo().plusGetAttribute("uid");
					uni.showModal({
						title: '通知权限开启提醒',
						content: '您还没有开启通知权限，无法接受到消息通知，请前往设置！',
						showCancel: false,
						confirmText: '去设置',
						success: function(res) {
							if (res.confirm) {
								var Intent = plus.android.importClass('android.content.Intent');
								var Build = plus.android.importClass("android.os.Build");
								//android 8.0引导  
								if (Build.VERSION.SDK_INT >= 26) {
									var intent = new Intent('android.settings.APP_NOTIFICATION_SETTINGS');
									intent.putExtra('android.provider.extra.APP_PACKAGE', pkName);
								} else if (Build.VERSION.SDK_INT >= 21) { //android 5.0-7.0  
									var intent = new Intent('android.settings.APP_NOTIFICATION_SETTINGS');
									intent.putExtra("app_package", pkName);
									intent.putExtra("app_uid", uid);
								} else { //(<21)其他--跳转到该应用管理的详情页  
									intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
									var uri = Uri.fromParts("package", mainActivity.getPackageName(), null);
									intent.setData(uri);
								}
								// 跳转到该应用的系统通知设置页  
								main.startActivity(intent);
							}
						}
					});
				}
			},
		},
		onLaunch() {
			// #ifdef APP-PLUS
			jpushModule.initJPushService();
			jpushModule.setLoggerEnable(true);
			plus.screen.lockOrientation("portrait-primary");
			// 设置别名
			jpushModule.setAlias({
				'alias': this.lxzl.getUserInfo().userId + '',
				'sequence': 1
			})
			//监听 极光推送连接状态
			this.getNotificationEnabled();
			jpushModule.addConnectEventListener(result => {
				let connectEnable = result.connectEnable
				uni.$emit('connectStatusChange', connectEnable)
			});
			jpushModule.addNotificationListener(result => { //极光推送的消息通知回调
				jpushModule.setBadge(0);
				plus.runtime.setBadgeNumber(0);
				let notificationEventType = result.notificationEventType
				let woopId = result.extras && result.extras.dataType === 'woop' && result.extras.value;
				console.log("通知", result, notificationEventType)
				// 点击事件
				if (notificationEventType == 'notificationOpened') {
					uni.navigateTo({
						url: '/pages/taskDetail/taskDetail?' + 'woopId=' + woopId
					});
				}
			});
			uni.$on('connectStatusChange', (connectStatus) => {
				var connectStr = ''
				if (connectStatus == true) {
					connectStr = '已连接'
					// this.getRegistrationID()
				} else {
					connectStr = '未连接'
				}
				console.log('监听到了连接状态变化 --- ', connectStr)
				this.connectStatus = connectStr
			})
			jpushModule.isPushStopped(res => {
				// code   0已停止推送  1未停止推送
				const {
					code
				} = res
				console.log(res, '安卓连接状态');
			})

		},

		onHide: function() {
			console.log('App Hide')
		},
		//页面销毁
		destroyed() {
			store.commit("setUserInfo", {
				playFlag: true,
			});
		},
	}
</script>

<style lang="scss">
	@import "@/uni_modules/uview-ui/index.scss";
	@import "@/uni_modules/uni-scss/index.scss";
	/* #ifndef APP-PLUS-NVUE */
	/* uni.css - 通用组件、模板样式库，可以当作一套ui库应用 */
	@import "@/static/uni.css";
	@import "@/static/customicons.css";
	@import "@/static/common.scss";

	/* H5 兼容 pc 所需 */
	/* #ifdef H5 */
	@media screen and (min-width: 768px) {
		body {
			overflow-y: scroll;
		}
	}

	/deep/uni-page-body {
		background-color: $themeBgColor;
		min-height: 100% !important;
		height: 100% !important;
	}

	.uni-top-window uni-tabbar .uni-tabbar {
		background-color: #fff !important;
	}

	.uni-app--showleftwindow .hideOnPc {
		display: none !important;
	}

	/* #endif */

	/* 以下样式用于 hello uni-app 演示所需 */
	page {
		height: 100%;
		font-size: 28rpx;
	}

	.fix-pc-padding {
		padding: 0 50px;
	}

	.uni-header-logo {
		padding: 30rpx;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		margin-top: 10rpx;
	}

	.uni-header-image {
		width: 100px;
		height: 100px;
	}

	.uni-hello-text {
		color: #7a7e83;
	}

	.uni-hello-addfile {
		text-align: center;
		line-height: 300rpx;
		background: #fff;
		padding: 50rpx;
		margin-top: 10px;
		font-size: 38rpx;
		color: #808080;
	}

	/* #endif*/

	/deep/ .uni-tabbar__label {
		font-size: 12px !important;
		/* 修改 tabBar 文字大小 */
	}
</style>