using System.Collections; using System.Collections.Generic; using UnityEngine; using System; using LitJson; public class SDKCallBack : MonoBehaviour { public static SDKCallBack ins; public List list_Action = new List(); public List list_callBackName = new List(); public Dictionary dic = new Dictionary(); public void Awake() { if (ins) { Destroy(gameObject); } else { DontDestroyOnLoad(this); ins = this; SDKManager.ins.sdk.setCallBackClazz("SDKCallBack", "AndroidCallBack"); // 在这里开始初始化SDK SDKManager.ins.sdk.initSdk(); } } public void setNextAction(string act, Action func) { if (!dic.ContainsKey(act)) { dic.Add(act, func); } } // 安卓所有的回调方法都通过这里通知Unity public void AndroidCallBack(string arg) { Debug.Log("安卓返回值===>" + arg); JsonData data = JsonMapper.ToObject(arg); //loginData = JsonMapper.ToObject(value); if (data.ContainsKey("action")) { // data.data.openid // { "code":200,"msg":"success","data":{ "is_certify":0,"age":0,"openid":"1000484"} } //{ "action":"login", "data":{ "code":200,"msg":"success","data":{ "is_certify":0,"age":0,"openid":"1000485"} } } string act = data["action"].ToString(); Debug.Log(act); if (act == "login") { JsonData loginData = data["data"]; if ((int)loginData["code"] == 200) { string uid = loginData["data"]["openid"].ToString(); SDKManager.ins.sdk.uid = (string)uid; LoginResult(act); } else { // 登录失败则直接重新拉起 SDKManager.ins.sdk.login(); } } } } void LoginResult(string act) { Action func = dic[act]; func?.Invoke(); } void Chongzhi() { } // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { } }