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 { 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(); #elif UNITY_ANDROID proxy = this.gameObject.AddComponent(); #else proxy = this.gameObject.AddComponent(); #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; } } /// /// 相关接口 /// //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 CaptureShot() { proxy.ShotCapture(); } //sdk 埋点 public void CustomEvent(string events, string desc, string type) { 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); } /// /// ///////// sdk层回调 /// /// //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 }); } } }