255 lines
7.3 KiB
C#
255 lines
7.3 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;
|
||
|
||
// 初始化打点
|
||
SdkCustomEvent.Init();
|
||
}
|
||
|
||
|
||
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 Logout()
|
||
{
|
||
proxy.Logout();
|
||
}
|
||
//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 OpenWeb(string url)
|
||
{
|
||
proxy.OpenWeb(url);
|
||
}
|
||
public void CaptureShot()
|
||
{
|
||
proxy.ShotCapture();
|
||
}
|
||
//sdk 埋点
|
||
public void CustomEvent(string events, string desc, string type)
|
||
{
|
||
Debug.Log("sdk打点事件:" + events + "|" + desc + "|" + type);
|
||
if(events == null||events == "")
|
||
{
|
||
return;
|
||
}
|
||
proxy.CustomEvent(events, desc, type);
|
||
}
|
||
//sdk 新手引导上报
|
||
public void NewRoleTutorial(string eventName, string guide_start_time, string guide_end_time, string serverId, string serverName, string roleName, string roleId)
|
||
{
|
||
proxy.NewRoleTutorial(eventName, guide_start_time, guide_end_time, serverId, serverName, roleName, roleId);
|
||
}
|
||
|
||
/// <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
|
||
});
|
||
}
|
||
|
||
|
||
}
|
||
}
|