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

246 lines
7.0 KiB
C#
Raw Normal View History

2020-07-15 13:44:37 +08:00
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
2020-05-09 13:31:21 +08:00
{
2020-07-15 13:44:37 +08:00
public class SDKManager : UnitySingleton<SDKManager>
2020-05-09 13:31:21 +08:00
{
public delegate void InitLaunchAction(string data);
public InitLaunchAction onInitLaunchCallback;
public delegate void RegisterAction(string data);
public RegisterAction onRegisterCallback;
2020-05-09 13:31:21 +08:00
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;
2020-07-15 13:44:37 +08:00
2020-05-09 13:31:21 +08:00
private static Proxy proxy;
2020-07-15 13:44:37 +08:00
public bool IsInit { get; private set; }
public void Initialize()
2020-05-09 13:31:21 +08:00
{
2020-07-15 13:44:37 +08:00
// 初始化
2020-05-09 13:31:21 +08:00
#if UNITY_IOS
2020-07-15 17:53:40 +08:00
proxy = this.gameObject.AddComponent<iOSProxy>();
2020-05-09 13:31:21 +08:00
#elif UNITY_ANDROID
2020-07-15 17:53:40 +08:00
proxy = this.gameObject.AddComponent<AndroidProxy>();
2020-05-09 13:31:21 +08:00
#else
2020-07-15 13:44:37 +08:00
proxy = this.gameObject.AddComponent<Proxy>();
2020-05-09 13:31:21 +08:00
#endif
2020-07-15 13:44:37 +08:00
// 初始化硬件信息
AndroidDeviceInfo.Instance.DeviceInit();
// 屏幕适配
NotchScreenUtil.Instance.Init();
2020-07-16 17:00:24 +08:00
// 初始化
Init();
2020-07-15 13:44:37 +08:00
IsInit = true;
2020-08-22 15:31:14 +08:00
// 初始化打点
SdkCustomEvent.Init();
2020-07-15 13:44:37 +08:00
}
2020-05-09 13:31:21 +08:00
void Update()
{
if (!AppConst.isSDKLogin) return;
2020-05-09 13:31:21 +08:00
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:
2020-07-23 21:26:03 +08:00
if (null != onRegisterCallback)
{
onRegisterCallback(msg.data);
}
break;
2020-05-09 13:31:21 +08:00
case MessageDef.MSG_LoginCallback:
if (null != onLoginCallback)
{
onLoginCallback(msg.data);
}
break;
case MessageDef.MSG_PayCallback:
2020-07-15 13:44:37 +08:00
if (null != Instance.onPayCallback)
2020-05-09 13:31:21 +08:00
{
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;
}
}
2020-07-15 13:44:37 +08:00
/// <summary>
/// 相关接口
/// </summary>
2020-05-09 13:31:21 +08:00
//sdk 登录
2020-07-16 17:00:24 +08:00
public void Init()
{
proxy.Init();
}
//sdk 登录
2020-05-09 13:31:21 +08:00
public void Login()
{
proxy.Login();
}
2020-08-15 10:13:32 +08:00
//sdk 登录
public void Logout()
{
proxy.Logout();
}
2020-05-09 13:31:21 +08:00
//sdk 数据上报
2020-07-15 13:44:37 +08:00
public void SubmitExtraData(SDKSubmitExtraDataArgs args)
2020-05-09 13:31:21 +08:00
{
proxy.SubmitExtraData(args);
}
//sdk 支付
2020-07-15 13:44:37 +08:00
public void Pay(SDKPayArgs args)
2020-05-09 13:31:21 +08:00
{
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();
}
2020-08-22 15:31:14 +08:00
//sdk 埋点
public void CustomEvent(string events, string desc, string type)
{
proxy.CustomEvent(events, desc, type);
}
2020-08-22 18:08:26 +08:00
//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);
}
2020-07-15 13:44:37 +08:00
/// <summary>
/// ///////// sdk层回调
/// </summary>
/// <param name="data"></param>
2020-05-09 13:31:21 +08:00
//sdk init 回调
public void InitCallback(string data)
{
2020-07-16 17:00:24 +08:00
Debug.Log("Helper : InitCallback - data: " + data);
2020-05-09 13:31:21 +08:00
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
});
}
2020-05-09 13:31:21 +08:00
//sdk login 回调
public void LoginCallback(string data)
{
2020-07-16 17:00:24 +08:00
Debug.Log("Helper : LoginCallback - data: " + data);
2020-05-09 13:31:21 +08:00
proxy.PushMessage(new Message
{
msgId = MessageDef.MSG_LoginCallback,
data = data
});
}
//sdk Pay回调
public void PayCallback(string data)
{
2020-07-16 17:00:24 +08:00
Debug.Log("Helper : PayCallback - data: " + data);
2020-05-09 13:31:21 +08:00
proxy.PushMessage(new Message
{
msgId = MessageDef.MSG_PayCallback,
data = data
});
}
//sdk SwitchAccount回调
public void SwitchAccountCallback(string data)
{
Debug.Log("Helper : SwitchAccountCallback - data: " + data);
2020-05-09 13:31:21 +08:00
proxy.PushMessage(new Message
{
msgId = MessageDef.MSG_SwitchAccountCallback,
data = data
});
}
//sdk Logout回调
public void LogoutCallback(string data)
{
Debug.Log("Helper : LogoutCallback - data: " + data);
2020-05-09 13:31:21 +08:00
proxy.PushMessage(new Message
{
msgId = MessageDef.MSG_LogoutCallback,
data = data
});
}
2020-07-15 13:44:37 +08:00
2020-05-09 13:31:21 +08:00
}
}