// H5 去调用App的方法
import jsBridge from "./bridge";
import { getUserInfo } from "@/api/user";

function saveUser(data) {
  localStorage.setItem("token", data);
  if (data) {
    getUserInfo().then(res => {
      console.log("存用户信息");
      console.log(res);
      console.log("----");
      if (res.code == 0) {
        localStorage.setItem("user", JSON.stringify(res.data));
      }
    });
  } else {
    console.log("调用失败");
  }
}

// 获取Token
export function getAuthToken() {
  const userAgent = navigator.userAgent;
  console.log("ua", userAgent);
  if (userAgent.indexOf("Android") > -1 || userAgent.indexOf("Adr") > -1) {
    // android
    console.log("android, 和安卓交互");
    const token = window.android.getAuthToken();
    console.log("an-token", token);
    return new Promise((resolve, reject) => {
      if (token) {
        saveUser(token);
        resolve(token);
      } else {
        reject("失败");
      }
    });
  } else if (userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)) {
    // ios
    console.log("ios");
    return new Promise((resolve, reject) => {
      console.log("调用1");
      jsBridge.callhandler("getAuthToken", null, data => {
        console.log("调用2");
        localStorage.setItem("token", data);
        console.log("--------------");
        if (data) {
          resolve(data);
          getUserInfo().then(res => {
            if (res.code === 0) {
              localStorage.setItem("user", JSON.stringify(res.data));
            }
          });
        } else {
          console.log("调用失败");
          reject("getAuthToken", data);
        }
      });
    });
  }
}

// 退出
export function logoutToApp() {
  console.log("退出登录");
  const userAgent = navigator.userAgent;
  if (userAgent.indexOf("Android") > -1 || userAgent.indexOf("Adr") > -1) {
    console.log("an");
    window.android.logout();
  } else {
    jsBridge.callhandler("logout");
  }
}

export function navigateBack() {
  console.log("返回");
  const userAgent = navigator.userAgent;
  if (userAgent.indexOf("Android") > -1 || userAgent.indexOf("Adr") > -1) {
    console.log("an");
    window.android.navigateBack();
  } else {
    jsBridge.callhandler("navigateBack");
  }
}

export function showBottomBar(params) {
  console.log("隐藏底部");
  const userAgent = navigator.userAgent;
  if (userAgent.indexOf("Android") > -1 || userAgent.indexOf("Adr") > -1) {
    console.log("an");
    window.android.showBottomBar(params);
  } else {
    jsBridge.callhandler("showBottomBar", params);
  }
}