import $api from "@/api/index.js"
import $util from "@/utils/index.js"
import $store from "@/store/index.js"
var jweixin = require('jweixin-module');

export default {
	//判断是否在微信中    
	async isWechat() {
		var ua = window.navigator.userAgent.toLowerCase();
		if (ua.match(/micromessenger/i) == 'micromessenger') {
			//console.log('是微信客户端')  
			return true;
		} else {
			//console.log('不是微信客户端')  
			return false;
		}
	},
	async initJssdk() {
		// let page = window.location.href.split('#')[0]; //获取当前url然后传递给后台获取授权和签名信息
		// let page = /(Android)/i.test(navigator.userAgent) ? window.location.href.split('?#')[0]+'?' : window.entryUrl;
		let page = window.entryUrl;
		// console.log(page)
		var {
			appid: appId,
			timestamp,
			nonceStr,
			signature
		} = await $api.base.getWebConfig({
			page
		});
		// signature = signature + `abcdef`
		jweixin.config({
			debug: false,
			appId,
			timestamp,
			nonceStr,
			signature,
			jsApiList: [ //这里是需要用到的接口名称  
				'checkJsApi', //判断当前客户端版本是否支持指定JS接口  
				'getLocation', //获取位置  
				'openLocation', //打开位置  
				'scanQRCode', //扫一扫接口  
				'chooseWXPay', //微信支付  
				'chooseImage', //拍照或从手机相册中选图接口  
				'previewImage', //预览图片接口
				'uploadImage', //上传图片  
				'updateAppMessageShareData',
				'updateTimelineShareData',
				'onMenuShareAppMessage',
				'onMenuShareTimeline',
				'hideOptionMenu',
				'showOptionMenu',
				'showMenuItems'
			]
		});
	},
	wxReady: function(fn) {
		jweixin.ready(function() {
			fn()
		})
	},
	async wxReady2() {
		return new Promise((resolve, reject) => {
			jweixin.ready(function() {
				resolve(1)
			})
		});
	},
	// 关闭右上菜单
	async hideOptionMenu() {
		return new Promise((resolve, reject) => {
			jweixin.hideOptionMenu()
		});
	},
	// 开启右上菜单
	async showOptionMenu() {
		return new Promise((resolve, reject) => {
			jweixin.showOptionMenu()
			jweixin.showMenuItems({
				menuList: [
					'menuItem:share:appMessage',
					'menuItem:share:timeline'
				]
			})
		})
	},
	/*分享给微信朋友*/
	shareAppMessage: function(title, desc, link, imgUrl) {
		jweixin.updateAppMessageShareData({
			title,
			desc,
			link,
			imgUrl,
			success: function(res) {
				// console.log(res, "======shareAppMessage res")
			}
		})
		jweixin.onMenuShareAppMessage({
			title,
			desc,
			link,
			imgUrl,
			success: function(res) {
				// console.log(res, "======onMenuShareAppMessage res")
			}
		})
	},
	/*分享微信朋友圈*/
	shareTimelineMessage: function(title, link, imgUrl) {
		jweixin.updateTimelineShareData({
			title,
			link,
			imgUrl,
			success: function(res) {
				// console.log(res, "======shareTimelineMessage res")
			}
		})
		jweixin.onMenuShareTimeline({
			title,
			link,
			imgUrl,
			success: function(res) {
				// console.log(res, "======onMenuShareTimeline res")
			}
		})
	},
	async getWxLocation() {
		let location = {
			latitude: 0,
			longitude: 0
		}
		return new Promise((resolve, reject) => {
			try {
				jweixin.checkJsApi({
					jsApiList: ['getLocation'],
					success: function(res) {
						
						// 以键值对的形式返回，可用的api值true，不可用为false
						// 如：{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
						console.log(res, "=======checkJsApi")
						
						
						let {
							getLocation
						} = res.checkResult
						if (getLocation === true && getLocation !== 'false') {
							
							jweixin.getLocation({
								type: 'gcj02', // 默认为wgs84的gps坐标，如果要返回直接给openLocation用的火星坐标，可传入'gcj02'
								success: function(res) {
									console.log(res, "===== getLocation success")
									resolve(res)
								},
								cancel: function(err){
									console.log(err, "==== getLocation cancel")
									resolve(location)
								},
								fail: function(err) {
									console.log(err,"===== getLocation fail")
									reject(err)
								}
							});
						} else {
							console.log(res, "==== getLocation else")
							resolve(location)
						}
					},
					fail: function(err){
						console.log(res, "==== checkJsApi error")
					}
				})
			} catch (e) {
				console.log(1111111111111)
				console.log(e)
				jweixin.error((err) => {
					console.log('wx-config-error', err);
					if (err.errMsg.includes('invalid signature')) {
						resolve(location)
					}
				});
			}

		});

	}
}
