import ScanOverlay from "src/components/overlay/scanOverlay/ScanOverlay";


// 手机原生对象, 由js进行调用，可使用手机原生功能
let _NativeQRCode = window.NativeQRCode;

if (!_NativeQRCode) {
  console.error("当前不是手机原生环境，将无法使用扫码功能")
}




// 扫码时的提示
let scanNotidy;

var NativeQRCodeWrap  = {

  // 扫描之前执行的方法
  callBackFun: null,
  selectCallBackFunData: null,
  updateCallBackFunData: null,
  beforeStatusBarColor: '',
  statusBarColor: '',

  // 设置扫描回调
  setCallBackFun(fun){
    this.callBackFun = fun;
  },
  
  // 设置回调
  addCallBackFun(fun){
    this.addcallBackFun = fun;
  },
  //设置回调
  selectCallBackFun(fun){
    this.selectCallBackFunData = fun;
  },
  //设置回调
  updateCallBackFun(fun){
    this.updateCallBackFunData = fun;
  },
  // 开始扫描
  startScan(_callBackfun) {
    // ScanOverlay.show('正在扫描烟码...');
    if (_callBackfun && typeof _callBackfun == 'function') {
      this.callBackFun = _callBackfun;
    }
    return _NativeQRCode && _NativeQRCode.startScan();
  },

  // 结束扫描
  endScan() {
    ScanOverlay.hide();
    return _NativeQRCode && _NativeQRCode.endScan();
  },

  // 查询本地持久化
  getStore(_key) {
    return _NativeQRCode && _NativeQRCode.getStore(_key);
  },
  
  // 增加本地存储数据
  add(_key) {
    if (_key && typeof _key == 'function') {
      this.addcallBackFun = _key;
    }
    return _NativeQRCode && _NativeQRCode.add(_key);
  },
  //本地库增加操作记录
  addOperatingRecord(_key){
    if (_key && typeof _key == 'function') {
      this.addcallBackFun = _key;
    }
    return _NativeQRCode && _NativeQRCode.addOperatingRecord(_key);
  },
  //向注册信息表中添加数据
    insertQrCodeRegistration(_key){
    if (_key && typeof _key == 'function') {
      this.addcallBackFun = _key;
    }
    return _NativeQRCode && _NativeQRCode.insertQrCodeRegistration(_key);
  },
  //查询本地库  操作列表
  selectRecordList(_key){
    if (_key && typeof _key == 'function') {
      this.selectCallBackFunData = _key;
    }
    return _NativeQRCode && _NativeQRCode.selectRecordList(_key);
  },
  //修改本地库  操作列表
  updateRecord(id){
    if (id && typeof id == 'function') {
      this.updateCallBackFunData = id;
    }
    return _NativeQRCode && _NativeQRCode.updateRecord(id);
  },
  // 设置本地持久化
  setStore(_key, _value) {
    _NativeQRCode && _NativeQRCode.setStore(_key, _value);
  },

  // 设置手机原生状态栏颜色  _bgColorHex为16进制任意颜色，  ！！！！！ fontColorType只有 black 和 white 两种选择
  setStatusBarColor(_bgColorHex, _fontColorType) {
    this.beforeStatusBarColor = this.statusBarColor;
    this.statusBarColor = _bgColorHex;
    _NativeQRCode && _NativeQRCode.setStatusBarColor(_bgColorHex, _fontColorType);
  },

  // 获取最新版本信息
  getNewVersion(versionUrl){
    if (_NativeQRCode) {
      return _NativeQRCode && _NativeQRCode.getNewVersion(versionUrl);
    }
  },

  // 下载最新版本
  downloadNewVersion(versionUrl,token){
    _NativeQRCode && _NativeQRCode.downloadNewVersion(versionUrl,token);
  }
}

// js原生对象，挂载到window节点上， 供手机原生对象调用
window.JSQRCode = {
  // 开始扫描
  startScan() {
    // ScanOverlay.show('正在扫描烟码...');
  },
  // 结束扫描
  endScan(qrcode) {
    ScanOverlay.hide();
    // 数据回调
    if (typeof NativeQRCodeWrap.callBackFun == 'function') {
      NativeQRCodeWrap.callBackFun(qrcode);
    }
  },
  receiveCode(qrcode){
    ScanOverlay.hide();
    // 执行扫描前方法
    if (typeof NativeQRCodeWrap.callBackFun == 'function') {
      NativeQRCodeWrap.callBackFun(qrcode);
    }
  },

  
};

export default NativeQRCodeWrap;
