miduo_client/Assets/LuaFramework/Scripts/SDK/SDKManager.cs

229 lines
6.4 KiB
C#

using System;
using UnityEngine;
using GameCore;
using System.Net;
using GameLogic;
using System.Collections;
using System.Text.RegularExpressions;
using System.Collections.Generic;
using System.IO;
using LuaInterface;
using System.Runtime.InteropServices;
using System.Text;
namespace SDK
{
public class SDKManager : UnitySingleton<SDKManager>
{
public delegate void InitLaunchAction(string data);
public InitLaunchAction onInitLaunchCallback;
public delegate void RegisterAction(string data);
public RegisterAction onRegisterCallback;
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;
public bool IsInit { get; private set; }
public void Initialize()
{
// 初始化
#if UNITY_IOS
proxy = this.gameObject.AddComponent<iOSProxy>();
#elif UNITY_ANDROID
proxy = this.gameObject.AddComponent<AndroidProxy>();
#else
proxy = this.gameObject.AddComponent<Proxy>();
#endif
// 初始化硬件信息
AndroidDeviceInfo.Instance.DeviceInit();
// 屏幕适配
NotchScreenUtil.Instance.Init();
// 初始化
Init();
IsInit = true;
}
void Update()
{
if (!AppConst.isSDKLogin) return;
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_RegisterCallback:
if (null != onRegisterCallback)
{
onRegisterCallback(msg.data);
}
break;
case MessageDef.MSG_LoginCallback:
if (null != onLoginCallback)
{
onLoginCallback(msg.data);
}
break;
case MessageDef.MSG_PayCallback:
if (null != Instance.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;
}
}
/// <summary>
/// 相关接口
/// </summary>
//sdk 登录
public void Init()
{
proxy.Init();
}
//sdk 登录
public void Login()
{
proxy.Login();
}
//sdk 数据上报
public void SubmitExtraData(SDKSubmitExtraDataArgs args)
{
proxy.SubmitExtraData(args);
}
//sdk 支付
public void Pay(SDKPayArgs args)
{
proxy.Pay(args);
}
//是否支持弹出退出框
public bool IsSupportExit()
{
return proxy.IsSupportExit();
}
//sdk 退出
public void ExitGame()
{
proxy.Exit();
}
//sdk获取支付订单号
public string GetPayOrderID()
{
return proxy.GetPayOrderID();
}
public void CaptureShot()
{
proxy.ShotCapture();
}
/// <summary>
/// ///////// sdk层回调
/// </summary>
/// <param name="data"></param>
//sdk init 回调
public void InitCallback(string data)
{
Debug.Log("Helper : InitCallback - data: " + data);
proxy.PushMessage(new Message
{
msgId = MessageDef.MSG_InitCallback,
data = data
});
}
//sdk 注册 回调
public void RegisterCallback(string data)
{
Debug.Log("Helper : RegisterCallback - data: " + data);
proxy.PushMessage(new Message
{
msgId = MessageDef.MSG_RegisterCallback,
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 : SwitchAccountCallback - data: " + data);
proxy.PushMessage(new Message
{
msgId = MessageDef.MSG_SwitchAccountCallback,
data = data
});
}
//sdk Logout回调
public void LogoutCallback(string data)
{
Debug.Log("Helper : LogoutCallback - data: " + data);
proxy.PushMessage(new Message
{
msgId = MessageDef.MSG_LogoutCallback,
data = data
});
}
}
}