195 lines
5.5 KiB
C#
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
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|