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

255 lines
7.3 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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
});
}
}
}