wangguan
2020-12-10 902a10e14cd00c8db894c08f4455e60ddd0af8c4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using LitJson;
 
public class SDKCallBack : MonoBehaviour
{
    public static SDKCallBack ins;
    public List<Action> list_Action = new List<Action>();
    public List<string> list_callBackName = new List<string>();
    public Dictionary<string, Action> dic = new Dictionary<string, Action>();
 
    public void Awake()
    {
        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"))
        {
            string act = data["action"].ToString();
            Debug.Log(act);
            if(act == "login")
            {
                LoginResult(act);
            }
        }
        
    }
 
    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()
    {
        
    }
}