import Vue from 'vue';
import {allocations} from '@/api/configget';
import Router from '@/router'
import {getToken} from '@/utils/auth'

export const wxAuth = (pushindex, next) => {
  const wechatConfigUrl = location.href.split('#')[0]
  if(!window.WWOpenData){
    console.log('url:'+wechatConfigUrl)
    wxConfigByCorp(wechatConfigUrl, pushindex, next)
  }else{
    next();
  }
}

async function wxConfigByCorp(url, pushindex, next) {
  var data;
  await allocations(url).then((res) => {data = res.data.data})
  const wxConfigParams = data.config
  const appSignature = data.agentConfig

  Vue.prototype.$wx.config({ // 鉴权（企业的身份与权限）
    beta: true, // 必须这么写，否则wx.invoke调用形式的jsapi会有问题
    debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
    appId: wxConfigParams.appId, // 必填，企业微信的corpID
    timestamp: wxConfigParams.timestamp, // 必填，生成签名的时间戳
    nonceStr: wxConfigParams.nonceStr, // 必填，生成签名的随机串
    signature: wxConfigParams.signature, // 必填，签名，见 附录-JS-SDK使用权限签名算法
    jsApiList: [
      'shareAppMessage',
      'previewFile',
      'selectEnterpriseContact',
      'onMenuShareAppMessage',
      'invoke',
      'hideOptionMenu',
      'showOptionMenu'
    ]
  });


  Vue.prototype.$wx.ready(function() {
    const u = navigator.userAgent;
    const isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; // 安卓
    const isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); // ios终端
    if (isAndroid) {
      Vue.prototype.$wx.agentConfig({ //鉴权（应用的身份与权限）
        corpid: appSignature.corpid, // 必填，企业微信的corpid，必须与当前登录的企业一致
        agentid: appSignature.agentid, // 必填，企业微信的应用id （e.g. 1000247）
        timestamp: appSignature.timestamp, // 必填，生成签名的时间戳
        nonceStr: appSignature.nonceStr, // 必填，生成签名的随机串
        signature: appSignature.signature, // 必填，签名，见附录-JS-SDK使用权限签名算法
        jsApiList: ['selectExternalContact'], //必填
        success: function(res) { // 回调  //  wx.agentConfig成功回调后，WWOpenData 才会注入到 window 对象上面
          if (next){next()}
        },
        fail: function(res) {
          if (res.errMsg.indexOf('function not exist') > -1) {
            alert('版本过低请升级')
          }
        }
      });
    }
    if (isIOS) {
      Vue.prototype.$wx.agentConfig({
        corpid: appSignature.corpid, // 必填，企业微信的corpid，必须与当前登录的企业一致
        agentid: appSignature.agentid, // 必填，企业微信的应用id （e.g. 1000247）生产环境
        timestamp: appSignature.timestamp, // 必填，生成签名的时间戳
        nonceStr: appSignature.nonceStr, // 必填，生成签名的随机串
        signature: appSignature.signature, // 必填，签名，见附录-JS-SDK使用权限签名算法
        jsApiList: ['openUserProfile','previewFile'], // 必填
        success(res) {
          if (next) {next()}
        },
        fail(res) {
          if (res.errMsg.indexOf('function not exist') > -1) {
            alert('版本过低请升级');
          }
        }
      });
    }
  });
  Vue.prototype.$wx.error(function(res){
      console.log('$wx.error'+res);
  });
}
