// 引入 jweixin-module
const jweixin = require('jweixin-module');

// 通过export 暴露常用的方法
export default {
	//判断是否在微信中    
	isWechat: function() {
		var ua = window.navigator.userAgent.toLowerCase();
		if (ua.match(/micromessenger/i) == 'micromessenger') {
			//console.log('是微信客户端')  
			return true;
		} else {
			//console.log('不是微信客户端')  
			return false;
		}
	},

	// 初始化WXSDK
	initJssdk: async function(callback) {
		/* ****************************************
		 * 获取当前url然后传递给后台获取授权和签名信息
		 # TODO: 后台返回签名
		 *************************************** */
		// let uri = encodeURIComponent(window.location.href.split('#')[0]);
		let uri = window.location.href.split('#')[0];
		console.log(uri); // 这
		// 获取后台返回的签名
		// 这里需要换成开发者自己的接口。
		// 此处我对uni.request进行了封装，
		// 直接采用uni.request方法然后在成功的回调里面完成SDK初始化也是可行的，根据实际情况处理
		let res = await this.GetSignature(uri);
		console.log(res); // 这里输出你的签名结果
		//注入config权限配置  
		let wxConf = {
			debug: true, // 是否开启调试，第一次尝试，建议开启，后续可关闭
			appId: res.data.appId, // 必填，公众号的唯一标识
			timestamp: res.data.timestamp, // 必填，生成签名的时间戳
			nonceStr: res.data.nonceStr, // 必填，生成签名的随机串
			signature: res.data.signature, // 必填，签名
			jsApiList: [ //这里是需要用到的接口名称  
				'updateAppMessageShareData', //分享接口  
				'updateTimelineShareData'
			]
		};
		jweixin.config(wxConf); //完成微信配置
	},
	async GetSignature(uri) {
		try {
			const response = await uni.request({
				url: 'http://ysh.0rui.cn/index.php',
				data: {
					url: uri
				},
				method: 'POST',
				header: {
					'content-type': 'application/x-www-form-urlencoded',
				}
			});
			console.log(response); // 这里输出你的签名结果
			// 在这里可以添加你的其他逻辑，处理获取到的签名数据
			return response[1]; // 如果需要在函数外部使用签名数据，可以将其返回
		} catch (error) {
			console.error('Error in GetSignature:', error);
			// 在这里处理错误情况，或者抛出异常
			throw error;
		}
	},
	/* ***************************************
	 *
	 *   微信SDK功能实例：调用微信扫码
	 *  若没有初始化需要先调用initJssdk完成初始化
	 *  若当前页面已经完成initJssdk初始化，调用扫码功能是可以直接调用 jweixin.scanQRCode
	 * 
	 * **************************************/
	scanCode: function(callback, needResult = 1) {
		if (!this.isWechat()) {
			console.log('不是微信客户端')
			return;
		}
		this.initJssdk(function(res) {
			jweixin.ready(function() {
				jweixin.scanQRCode({
					needResult: needResult, // 0扫码结果由微信处理， 1是直接返回结果，由开发者处理
					scanType: ["qrCode", "barCode"],
					success: function(rs) {
						console.log(rs);
						callback(rs)
					}
				})
			});
		});
	}
}