miduo_client/Assets/LuaFramework/Scripts/KTSDK/Helper.cs

195 lines
5.5 KiB
C#

using UnityEngine;
namespace KTSDK
{
public class Helper : MonoBehaviour
{
public delegate void InitLaunchAction(string data);
public InitLaunchAction onInitLaunchCallback;
public delegate void LoginAction(string data);
public LoginAction onLoginCallback;
public delegate void PayAction(string data);
public PayAction onPayCallback;
public delegate void SwitchAccountAction(string data);
public SwitchAccountAction onSwitchAccountCallback;
public delegate void LogoutAction(string data);
public LogoutAction onLogoutCallback;
private static Proxy proxy;
private static Helper _instance;
static public Helper Instance
{
get
{
if (null == _instance)
{
var obj = new GameObject("KTSDKHelper");
_instance = obj.AddComponent<Helper>();
DontDestroyOnLoad(obj);
#if UNITY_IOS
proxy = obj.AddComponent<iOS.iOSProxy>();
#elif UNITY_ANDROID
proxy = obj.AddComponent<Android.AndroidProxy>();
#else
proxy = obj.AddComponent<Proxy>();
#endif
}
return _instance;
}
}
void Update()
{
var msg = proxy.PopMessage();
if (null == msg)
{
return;
}
Debug.LogFormat("[KTSDK] PopMessage - this: {0}, msgId: {1}, data: {2}", GetHashCode(), msg.msgId, msg.data);
switch (msg.msgId)
{
case MessageDef.MSG_InitCallback:
if (null != onInitLaunchCallback)
{
onInitLaunchCallback(msg.data);
}
break;
case MessageDef.MSG_LoginCallback:
if (null != onLoginCallback)
{
onLoginCallback(msg.data);
}
break;
case MessageDef.MSG_PayCallback:
if (null != onPayCallback)
{
onPayCallback(msg.data);
}
break;
case MessageDef.MSG_SwitchAccountCallback:
if (null != onSwitchAccountCallback)
{
onSwitchAccountCallback(msg.data);
}
break;
case MessageDef.MSG_LogoutCallback:
if (null != onLogoutCallback)
{
onLogoutCallback(msg.data);
}
break;
default:
break;
}
}
//sdk 初始化
public void InitLaunch(KTSDKInitArgs args)
{
proxy.Init(args);
}
//sdk 登录
public void Login()
{
proxy.Login();
}
//sdk 数据上报
public void SubmitExtraData(KTSDKSubmitExtraDataArgs args)
{
proxy.SubmitExtraData(args);
}
//sdk 支付
public void Pay(KTSDKPayArgs args)
{
proxy.Pay(args);
}
//是否支持弹出退出框
public bool IsSupportExit()
{
return proxy.IsSupportExit();
}
//sdk 退出
public void ExitGame()
{
proxy.Exit();
}
//sdk 获取设备标识
public string GetDeviceID()
{
return proxy.GetDeviceID();
}
//sdk 获取IMEI
public string GetIMEICode()
{
return proxy.GetIMEICode();
}
//sdk获取支付订单号
public string GetPayOrderID()
{
return proxy.GetPayOrderID();
}
public void CaptureShot()
{
proxy.ShotCapture();
}
//sdk init 回调
public void InitCallback(string data)
{
//Debug.Log("Helper : InitCallback - data: " + data);
proxy.PushMessage(new Message
{
msgId = MessageDef.MSG_InitCallback,
data = data
});
}
//sdk login 回调
public void LoginCallback(string data)
{
//Debug.Log("Helper : LoginCallback - data: " + data);
proxy.PushMessage(new Message
{
msgId = MessageDef.MSG_LoginCallback,
data = data
});
}
//sdk Pay回调
public void PayCallback(string data)
{
//Debug.Log("Helper : PayCallback - data: " + data);
proxy.PushMessage(new Message
{
msgId = MessageDef.MSG_PayCallback,
data = data
});
}
//sdk SwitchAccount回调
public void SwitchAccountCallback(string data)
{
Debug.Log("Helper : PayCallback - data: " + data);
proxy.PushMessage(new Message
{
msgId = MessageDef.MSG_SwitchAccountCallback,
data = data
});
}
//sdk Logout回调
public void LogoutCallback(string data)
{
//Debug.Log("Helper : PayCallback - data: " + data);
proxy.PushMessage(new Message
{
msgId = MessageDef.MSG_LogoutCallback,
data = data
});
}
}
}