<template>
	<view></view>
</template>
<script>
	import wx from '@/common/js/weixin-js-sdk.js';
	export default {
		name:"scanCode",
		props:{},
		data() {
			return {
				wxObject:null,
			};
		},
		mounted() {
			this.setConfig()
		},
		methods: {
			setConfig() {
				const promise = new Promise((resolve, reject) => {
					// let url = window.location.href
					let url =  /(Android)/i.test(navigator.userAgent) ? location.href.split('#')[0] : window.localStorage.getItem('scanUrl')
					this.HTTP_GET("weixinapi/getweixinwebaccess_token?url=" + encodeURIComponent(url)).then((success)=>{
						if(!success){
							resolve(false)
							return
						}
						this.wxObject = wx
						this.wxObject.config({
						    debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
						    appId: success.appid, // 必填，公众号的唯一标识
						    timestamp: success.timestamp, // 必填，生成签名的时间戳
						    nonceStr: success.noncestr, // 必填，生成签名的随机串
						    signature: success.certificate, // 必填，签名
						    jsApiList: ["scanQRCode"] // 必填，需要使用的JS接口列表
						});
						this.wxObject.ready(() => {
							this.TOAST("扫码初始化成功")
						})
						this.wxObject.error(() => {
							this.TOAST("扫码初始化失败")
						})
					})
				})
				return promise
			},
			scanCode(){
				return new Promise((resolve)=>{
					if(!this.wxObject||!this.wxObject.scanQRCode){
						this.TOAST("无效方法")
						resolve(false)
					}else{
						this.TOAST("正在调用扫码...")
					}
					this.wxObject.scanQRCode({
						needResult: 1, // 默认为0，扫描结果由微信处理，1则直接返回扫描结果，
						scanType: ["qrCode", "barCode"], // 可以指定扫二维码还是一维码，默认二者都有
						success: (res) => {
						  this.TOAST("方法调用成功")
						  var result = res.resultStr; // 当 needResult 为 1 时，扫码返回的结果
						  var resultArr = result.split(','); // 扫描结果以逗号分割数组
						  var codeContent = resultArr[resultArr.length - 1]; // 获取数组最后一个元素，也就是最终的内容
						  resolve({result:codeContent})
						},
						fail: (res) =>{
						  this.TOAST("调用扫码失败")
						  resolve(false)
						}
					});
				})
			}
		},
	}
</script>

<style>

</style>