From 9df5aae86c098bf019f764d27b47d72da37bff84 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期四, 30 八月 2018 10:30:24 +0800
Subject: [PATCH] 2391 【前端】游戏性能优化
---
Core/SDK/SDKUtility.cs | 1719 +++++++++++++++++++++++++++++------------------------------
1 files changed, 843 insertions(+), 876 deletions(-)
diff --git a/Core/SDK/SDKUtility.cs b/Core/SDK/SDKUtility.cs
index a811ead..906e78b 100644
--- a/Core/SDK/SDKUtility.cs
+++ b/Core/SDK/SDKUtility.cs
@@ -1,876 +1,843 @@
-锘縰sing UnityEngine;
-using LitJson;
-using UnityEngine.Events;
-using System.Collections.Generic;
-using System.Runtime.InteropServices;
-using System.Collections;
-
-public class SDKUtility : SingletonMonobehaviour<SDKUtility>
-{
- public static bool assetCopyFinish = false;
-
- public static float ElectricQuantity = 1f;
- public static string UniqueID = "";
- public static string AND_UserAgent = "";
- public static string AND_MacAddress = "";
- public static string AND_IMEI = "";
- public static string AND_AndroidID = "";
- public static string AND_IP = "";
- public UnityAction<string> onUniqueIDChanged;
- public static int wifiSignal = 3;
-
- public NetworkReachability NetWorkState = NetworkReachability.NotReachable;
-
- public UnityAction onAssetsCopyFinish;
- public UnityAction<int, int> onBatteryChanged;
- // 0 "鏈紑鍚洃瑙嗙數姹犵姸鎬�", 1 "鐢垫睜鏈厖鐢电姸鎬�", 2 "鐢垫睜鍏呯數鐘舵��", 3 "鐢垫睜鍏呯數瀹屾垚"
- public int BatteryState { get; private set; }
- public UnityAction<int> onBatteryStateChanged;
- /// <summary>
- /// 缃戠粶鐘舵�佹敼鍙�: 0: 鏃犵綉缁� 1: wifi缃戠粶 2: 鎵嬫満缃戠粶( >= 2涓烘墜鏈虹綉缁�, 渚濇涓�2G,3G,4G)
- /// </summary>
- public UnityAction<int> onNetStatusChanged;
- public UnityAction<int> onPhoneSignalChanged;
- public UnityAction<int> onWifiSignalChanged;
- public string GeTuiClientID { get; private set; }
-
- public string channelId = "1000";
- public string platfromId = "1000";
-
- private const int CODE_SDK_COPY_ASSETS_OVER = 2001;
- private const int CODE_SDK_BATTERY_CHANGED = 2002;
- private const int CODE_SDK_NETSTATE_CHANGED = 2003;
- private const int CODE_SDK_GETUI_CLIENT_ID = 2004;
- private const int CODE_SDK_GETUI_MESSAGE = 2005;
- private const int CODE_SDK_PHONESIGNAL_LEVEL = 2006;
- private const int CODE_SDK_WIFISIGNAL_LEVEL = 2007;
- private const int CODE_SDK_EXTERNALSTORAGEDIRECTORY = 2008;
- private const int CODE_SDK_MAKEKEYANDVISIBLE = 2010;
- private const int CODE_SDK_IOS_OPENURL = 2011;
- private const int CODE_SDK_BATTERY_STATE_CHANGE = 2012;
- private const int CODE_SDK_UNIQUE_ID_CHANGE = 2013;
- private const int CODE_SDK_AD_TOKEN = 4000;
- private const int CODE_SDK_USERAGENT = 4100;
-
- public static bool hasGetAndroidInfo = false;
-
- public string Account { get; private set; }
-
- public string AD_Token
- {
- get; private set;
- }
-
- [DllImport("__Internal")]
- private static extern void IOSMessageHandle(string json);
-
- /// <summary>
- /// Android鐨勫唴閮ㄥ瓨鍌ㄦ牴鐩綍
- /// </summary>
- public string externalStorageDirectory = null;
-
- public void Initialize()
- {
- GeTuiClientID = string.Empty;
-
- if (VersionConfig.Get().versionAuthority == VersionAuthority.Release)
- {
- SendClientPackage();
- }
-
-#if !UNITY_EDITOR
-
-
-#if UNITY_IOS
- var assetsCopyFinishVersion = LocalSave.GetString("AssetCopyCompleted_IOS");
- if (string.IsNullOrEmpty(assetsCopyFinishVersion))
- {
- assetCopyFinish = false;
- }
- else
- {
- assetCopyFinish = VersionConfig.Get().version == assetsCopyFinishVersion;
- }
-
- FreePlatformInit();
-#endif
- StartCoroutine("GetWifiState");
-#endif
-
- }
-
- private IEnumerator GetWifiState()
- {
- while (true)
- {
- yield return WaitingForSecondConst.WaitMS1000;
-
- if (Application.internetReachability != NetWorkState)
- {
- NetWorkState = Application.internetReachability;
-
- if (onNetStatusChanged != null)
- {
- onNetStatusChanged((int)NetWorkState);
- }
- }
- }
- }
-
- public void TestBattery()
- {
- int level = Random.Range(1, 100);
- int total = 100;
- ElectricQuantity = (float)level / total;
-
- //Debug.LogFormat("鏀跺埌鐢甸噺閫氱煡 => 褰撳墠: {0}, 鎬婚噺: {1}, 鐧惧垎姣旓細{2}", level, total, ElectricQuantity);
-
- if (onBatteryChanged != null)
- {
- onBatteryChanged(level, total);
- }
- }
-
- public void TestWifi()
- {
- NetworkReachability _state = (NetworkReachability)Random.Range(0, 2);
- if (NetWorkState != _state)
- {
- NetWorkState = _state;
- if (onNetStatusChanged != null)
- {
- onNetStatusChanged((int)NetWorkState);
- }
- //Debug.LogFormat("缃戠粶鐘舵�佸彉鏇�: {0}", NetWorkState);
- }
-
- }
-
- public void Recv_SDK_Callback(string msg)
- {
- JsonData _jsonData = JsonMapper.ToObject(msg);
- switch ((int)_jsonData["code"])
- {
- case CODE_SDK_FREEPLATFORM_INIT_OK:// 鍒濆鍖栨垚鍔�
- if (onFreePlatformInitOk != null)
- {
- onFreePlatformInitOk();
- }
- break;
- case CODE_SDK_FREEPLATFORM_INIT_FAIL:// 鍒濆鍖栧け璐�
- if (onFreePlatformInitFail != null)
- {
- onFreePlatformInitFail();
- }
- break;
- case CODE_SDK_FREEPLATFORM_LOGIN_OK:// 鐧婚檰鎴愬姛
-
-#if UNITY_ANDROID
- HandleFreePlatformLoginOk(_jsonData["info"]);
-#elif UNITY_IOS
- HandleFreePlatformLoginOk(_jsonData);
-#endif
-
- OperationLogCollect.Instance.RecordEvent(6);
-
- break;
- case CODE_SDK_FREEPLATFORM_LOGIN_FAIL:// 鐧婚檰鎴愬姛
- if (onFreePlatformLoginFail != null)
- {
- onFreePlatformLoginFail();
- }
- break;
- case CODE_SDK_FREEPLATFORM_LOGOUT_OK:// 鐧诲嚭鎴愬姛
- if (onFreePlatformLogoutOk != null)
- {
- onFreePlatformLogoutOk();
- }
- break;
- case CODE_SDK_FREEPLATFORM_LOGOUT_FAIL:// 鐧诲嚭澶辫触
- if (onFreePlatformLogoutFail != null)
- {
- onFreePlatformLogoutFail();
- }
- break;
- case CODE_SDK_FREEPLATFORM_PAY_OK:// 鏀粯鎴愬姛
- if (onFreePlatformPayOk != null)
- {
- onFreePlatformPayOk();
- }
- break;
- case CODE_SDK_FREEPLATFORM_PAY_FAIL:// 鏀粯澶辫触
- if (onFreePlatformPayFail != null)
- {
- onFreePlatformPayFail();
- }
- break;
- case CODE_SDK_FREEPLATFORM_PAY_CANCEL:// 鏀粯閫�鍑�
- if (onFreePlatformPayCancel != null)
- {
- onFreePlatformPayCancel();
- }
- break;
- case CODE_SDK_FREEPLATFORM_BIND_OK:
- if (onFreePlatformBindOk != null)
- {
- onFreePlatformBindOk();
- }
- break;
- case CODE_SDK_FREEPLATFORM_BIND_FAIL:
- if (onFreePlatformBindFail != null)
- {
- onFreePlatformBindFail();
- }
- break;
- case CODE_SDK_AD_TOKEN:
- AD_Token = _jsonData["token"].ToString();
- //Debug.LogFormat("鑾峰彇骞垮憡sdk鐨凾oken: {0}", AD_Token);
- break;
- case CODE_SDK_FREEPLATFORM_REG_OK:
- Account = _jsonData["account"].ToString();
- OperationLogCollect.Instance.RecordEvent(5);
- SendTouTiaoADEvent(1);
- break;
- case CODE_SDK_BATTERY_CHANGED:// 鐢甸噺鏀瑰彉
-#if UNITY_ANDROID
- HandleBatteryChanged(_jsonData["info"]);
-#elif UNITY_IOS
- HandleBatteryChanged(_jsonData);
-#endif
- break;
- case CODE_SDK_BATTERY_STATE_CHANGE:
- BatteryState = (int)_jsonData["status"];
- //Debug.LogFormat("鏀跺埌鍏呯數鐘舵��: {0}", BatteryState);
- if (onBatteryStateChanged != null)
- {
- onBatteryStateChanged(BatteryState);
- }
- break;
- case CODE_SDK_COPY_ASSETS_OVER:// 璧勬簮鎷疯礉瀹屾瘯
- assetCopyFinish = true;
- if (onAssetsCopyFinish != null)
- {
- onAssetsCopyFinish();
- }
- break;
- case CODE_SDK_GETUI_CLIENT_ID:// 涓帹瀹㈡埛绔疘D
- HandleGT_ClientID(_jsonData);
- break;
- case CODE_SDK_GETUI_MESSAGE:// 涓帹閫忎紶淇℃伅
- HandleGT_TouChuanMSG(_jsonData["info"]);
- break;
- case CODE_SDK_EXTERNALSTORAGEDIRECTORY:
- externalStorageDirectory = _jsonData["info"].ToString();
- break;
- case CODE_SDK_UNIQUE_ID_CHANGE:
- //WriteDebug(msg);
- UniqueID = _jsonData["uniqueID"].ToString();
- //WriteDebug("鑾峰彇鐨勫敮涓�璇嗗埆鐮佷负: " + UniqueID);
- if (onUniqueIDChanged != null)
- {
- onUniqueIDChanged(UniqueID);
- }
- break;
- case CODE_SDK_USERAGENT:
- //WriteDebug(msg);
-#if UNITY_ANDROID
- AND_MacAddress = _jsonData["mac"].ToString();
- AND_AndroidID = _jsonData["android_id"].ToString();
- AND_IMEI = _jsonData["imei"].ToString();
-#endif
- AND_UserAgent = _jsonData["userAgent"].ToString();
- AND_IP = _jsonData["ip"].ToString();
- hasGetAndroidInfo = true;
- //WriteDebug("鏄惁瀹屾垚璁惧淇℃伅鑾峰彇: " + hasGetAndroidInfo);
- break;
- }
- }
-
- public void StartCopyAsset()
- {
- AndroidJavaClass _jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
- AndroidJavaObject _jo = _jc.GetStatic<AndroidJavaObject>("currentActivity");
- _jo.Call("copyAsset");
- }
-
- public int GetDeviceMemInfo()
- {
- AndroidJavaClass _jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
- AndroidJavaObject _jo = _jc.GetStatic<AndroidJavaObject>("currentActivity");
- return _jo.Call<int>("getMemInfo");
- }
-
- public void RestartApp()
- {
- AndroidJavaClass _jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
- AndroidJavaObject _jo = _jc.GetStatic<AndroidJavaObject>("currentActivity");
- _jo.Call("RestartApp");
- }
-
- public void CopyTextToClipboard(string content)
- {
- AndroidJavaClass _jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
- AndroidJavaObject _jo = _jc.GetStatic<AndroidJavaObject>("currentActivity");
- _jo.Call("CopyTextToClipboard", content);
- }
-
- public void OpenUrl(string url)
- {
-#if UNITY_ANDROID
- AndroidJavaClass _jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
- AndroidJavaObject _jo = _jc.GetStatic<AndroidJavaObject>("currentActivity");
- _jo.Call("OpenUrl", url);
-#elif UNITY_IOS
- string _content = "{\"code\":2011,\"url\":\"" + url + "\"}";
- IOSMessageHandle(_content);
-#endif
- }
-
- public void SendClientPackage()
- {
-#if UNITY_ANDROID && !UNITY_EDITOR
- AndroidJavaClass _jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
- AndroidJavaObject _jo = _jc.GetStatic<AndroidJavaObject>("currentActivity");
- _jo.Call("setClientPackageID", VersionConfig.Get().clientPackageFlag);
-#endif
- }
-
- public void InstallAPK(string path)
- {
- AndroidJavaClass _jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
- AndroidJavaObject _jo = _jc.GetStatic<AndroidJavaObject>("currentActivity");
- _jo.Call("InstallAPK", path);
- }
-
- public void MakeKeyAndVisible()
- {
-#if UNITY_IOS
- string _content = "{\"code\":2010}";
- IOSMessageHandle(_content);
-#endif
- }
-
- public string GetAndroidRoot()
- {
- return externalStorageDirectory;
- }
-
- private void HandleBatteryChanged(JsonData data)
- {
- int _level = (int)data["level"];
- int _scale = (int)data["scale"];
-
- ElectricQuantity = (float)_level / _scale;
-
- //Debug.LogFormat("鏀跺埌鐢甸噺閫氱煡 => 褰撳墠: {0}, 鎬婚噺: {1}, 鐧惧垎姣旓細{2}", _level, _scale, ElectricQuantity);
-
- if (onBatteryChanged != null)
- {
- onBatteryChanged(_level, _scale);
- }
- }
-
- private void HandleGT_ClientID(JsonData data)
- {
- GeTuiClientID = data["clientID"].ToString();
- //DesignDebug.Log("鏀跺埌涓帹 => ClientID: " + GeTuiClientID);
- }
-
- private void HandleGT_TouChuanMSG(JsonData data)
- {
- string _getuiMSG = data["msg"].ToString();
- //DesignDebug.Log("鏀跺埌涓帹閫忎紶淇℃伅 => msg: " + _getuiMSG);
- }
-
- #region 鑷敱SDK鐩稿叧
-
- public struct FP_LoginOk
- {
- public string account;
- public string token;
- public string tokenExpire;
- public int phone;
- public int accountID;
- }
-
- public struct FP_CheckIDAuthentication
- {
- public string errorcode;
- public string errordesc;
- public string type;
- public string card_id;
- }
-
- public struct FP_DoIDAuthentication
- {
- public string errorcode;
- public string errordesc;
- public string card_id;
- }
-
- public string AppID
- {
- get
- {
- return VersionConfig.Get().appId;
- }
- }
-
- private const int CODE_SDK_FREEPLATFORM_INIT_OK = 3000;
- private const int CODE_SDK_FREEPLATFORM_INIT_FAIL = 3001;
- private const int CODE_SDK_FREEPLATFORM_LOGIN_OK = 3002;
- private const int CODE_SDK_FREEPLATFORM_LOGIN_FAIL = 3003;
- private const int CODE_SDK_FREEPLATFORM_LOGOUT_OK = 3004;
- private const int CODE_SDK_FREEPLATFORM_LOGOUT_FAIL = 3005;
- private const int CODE_SDK_FREEPLATFORM_PAY_OK = 3006;
- private const int CODE_SDK_FREEPLATFORM_PAY_FAIL = 3007;
- private const int CODE_SDK_FREEPLATFORM_PAY_CANCEL = 3008;
- private const int CODE_SDK_FREEPLATFORM_BIND_OK = 3009;
- private const int CODE_SDK_FREEPLATFORM_BIND_FAIL = 3010;
- private const int CODE_SDK_FREEPLATFORM_REG_OK = 3011;
-
- public UnityAction onFreePlatformInitOk;
- public UnityAction onFreePlatformInitFail;
- public UnityAction<FP_LoginOk> onFreePlatformLoginOk;
- public UnityAction onFreePlatformLoginFail;
- public UnityAction onFreePlatformLogoutOk;
- public UnityAction onFreePlatformLogoutFail;
- public UnityAction onFreePlatformPayOk;
- public UnityAction onFreePlatformPayFail;
- public UnityAction onFreePlatformPayCancel;
- public UnityAction onFreePlatformBindOk;
- public UnityAction onFreePlatformBindFail;
- public UnityAction<FP_CheckIDAuthentication> onFreePlatfromCheckIDOK;
- public UnityAction<FP_DoIDAuthentication> onFreePlatfromDoIDAuthenticationOk;
-
- public void FreePlatformInit()
- {
-#if UNITY_IOS
- IOSMessageHandle("{\"code\":3100}");
-#endif
- }
-
- /// <summary>
- /// 鑷敱SDK鐧婚檰
- /// </summary>
- public void FreePlatformLogin()
- {
-#if UNITY_ANDROID
- AndroidJavaClass _jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
- AndroidJavaObject _jo = _jc.GetStatic<AndroidJavaObject>("currentActivity");
- _jo.Call("FreePlatformLogin");
-#elif UNITY_IOS
- IOSMessageHandle("{\"code\":3101}");
-#endif
- }
-
- /// <summary>
- /// 鑷敱SDK閫�鍑�
- /// </summary>
- public void FreePlatformLoginout()
- {
-#if UNITY_ANDROID
- AndroidJavaClass _jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
- AndroidJavaObject _jo = _jc.GetStatic<AndroidJavaObject>("currentActivity");
- _jo.Call("FreePlatformLogout");
-#elif UNITY_IOS
- IOSMessageHandle("{\"code\":3102}");
-#endif
- }
-
- public void FreePlatformBindPhone()
- {
-#if UNITY_ANDROID
- AndroidJavaClass _jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
- AndroidJavaObject _jo = _jc.GetStatic<AndroidJavaObject>("currentActivity");
- _jo.Call("BindPhone");
-#endif
- }
-
- public void FreePlatformSwitchAccount()
- {
-#if UNITY_ANDROID
- AndroidJavaClass _jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
- AndroidJavaObject _jo = _jc.GetStatic<AndroidJavaObject>("currentActivity");
- _jo.Call("SwitchAccount");
-#endif
- }
-
- /// <summary>
- /// 鑷敱SDK鏄剧ず娓告垙涓偓娴�
- /// </summary>
- public void FreePlatformShowGameFloat()
- {
-#if UNITY_ANDROID
- AndroidJavaClass _jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
- AndroidJavaObject _jo = _jc.GetStatic<AndroidJavaObject>("currentActivity");
- _jo.Call("ShowGameFloat");
-#endif
- }
-
- /// <summary>
- /// 鑷敱SDK闅愯棌娓告垙涓偓娴�
- /// </summary>
- public void FreePlatformHideGameFloat()
- {
-#if UNITY_ANDROID
- AndroidJavaClass _jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
- AndroidJavaObject _jo = _jc.GetStatic<AndroidJavaObject>("currentActivity");
- _jo.Call("HideGameFloat");
-#endif
- }
-
- private Dictionary<string, string> m_PaymentTable = new Dictionary<string, string>();
- private string m_EncodeKey = "03sujm7gerywdvyd5vkkk772rs4by230";
-
- /// <summary>
- /// 鑷敱SDK鏀粯 fixed sdk 鏀粯閫昏緫淇敼
- /// </summary>
- public void FreePlatformPay(string title, float money, string cpInfo)
- {
- m_PaymentTable["ProductID"] = "snxxz";
- m_PaymentTable["OperatorID"] = VersionConfig.Get().appId;
- m_PaymentTable["RegionName"] = "s" + ServerListCenter.Instance.currentServer.region_flag;
- m_PaymentTable["TimeStamp"] = ((long)(System.DateTime.Now - System.TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1))).TotalSeconds).ToString();
- m_PaymentTable["Time"] = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
- m_PaymentTable["EventID"] = "12001";
- m_PaymentTable["IP"] = DeviceUtility.GetIp();
- m_PaymentTable["AccountID"] = Snxxz.UI.ModelCenter.Instance.GetModel<Snxxz.UI.LoginModel>().sdkLoginResult.account;
- m_PaymentTable["SessionID"] = "11";
- m_PaymentTable["Level"] = PlayerDatas.Instance.baseData.LV.ToString();
- m_PaymentTable["VIPLevel"] = PlayerDatas.Instance.baseData.VIPLv.ToString();
- m_PaymentTable["CurrencyAmount"] = money.ToString();
- m_PaymentTable["OrderTitle"] = title;
- m_PaymentTable["OrderInfo"] = cpInfo;
- m_PaymentTable["AppID"] = VersionConfig.Get().appId;
-
- var _stringBuilder = new System.Text.StringBuilder();
- var _md5Body = _stringBuilder.Append(m_PaymentTable["AppID"]).
- Append(m_PaymentTable["AccountID"]).
- Append(m_PaymentTable["TimeStamp"]).
- Append(m_PaymentTable["CurrencyAmount"]).
- Append(m_EncodeKey);
-
- var _md5Encode = System.Security.Cryptography.MD5.Create();
- var _encodeResult = _md5Encode.ComputeHash(System.Text.Encoding.UTF8.GetBytes(_md5Body.ToString()));
-
- _stringBuilder.Remove(0, _stringBuilder.Length);
- for (int i = 0; i < _encodeResult.Length; ++i)
- {
- _stringBuilder.Append(_encodeResult[i].ToString("x2"));
- }
-
- m_PaymentTable["Sign"] = _stringBuilder.ToString();
- m_PaymentTable["RoleID"] = PlayerDatas.Instance.baseData.PlayerName;
-
- _stringBuilder.Remove(0, _stringBuilder.Length);
-
- HttpRequest.Instance.RequestHttpGet(_stringBuilder.Append("http://recharge.game.173on.com:11000/api?").
- Append(HttpRequest.HashtablaToString(m_PaymentTable)).ToString(),
- HttpRequest.defaultHttpContentType, 1, (bool result, string message) =>
- {
- if (result)
- {
- JsonData _json = JsonMapper.ToObject(message);
-
- int _callbackResult = (int)_json["result"];
-
- if (_callbackResult == 1)
- {
-#if !UNITY_EDITOR
-
-#if UNITY_ANDROID
- AndroidJavaClass _jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
- AndroidJavaObject _jo = _jc.GetStatic<AndroidJavaObject>("currentActivity");
- _jo.Call("Pay", title, _json["orderid"].ToString(), money, cpInfo);
-
-#elif UNITY_IOS
- JsonData _params = new JsonData();
- _params["code"] = 3103;
- _params["identifier"] = VersionConfig.Get().bundleIdentifier;
- _params["cpOrderId"] = _json["orderid"].ToString();
- _params["total"] = money;
- _params["cpInfo"] = cpInfo;
- _params["title"] = title;
- IOSMessageHandle(_params.ToJson());
-#endif
- m_Order = _json["orderid"].ToString();
- m_Money = money;
-#endif
- }
- else
- {
- Debug.Log(_json["msg"].ToString());
- if (onFreePlatformPayFail != null)
- {
- onFreePlatformPayFail();
- }
- }
- }
- else
- {
- if (onFreePlatformPayFail != null)
- {
- onFreePlatformPayFail();
- }
- }
- });
- }
-
- string authenticationCardId = "";
- public void FreePlatformDoIDAuthentication(string _account, string _userName, string _idNumber)
- {
- authenticationCardId = _idNumber;
-
- var tables = new Dictionary<string, string>();
- tables["app_id"] = VersionConfig.Get().appId;
- tables["account"] = _account;
- tables["card_id"] = _idNumber;
- tables["mac"] = DeviceUtility.GetMac();
- tables["rolename"] = _userName;
- tables["channelid"] = channelId;
-
- var url = "http://zysdk.xileyougame.com/api.php/Service/anti_mystery?";
- HttpRequest.Instance.RequestHttpGet(StringUtility.Contact(url, HttpRequest.HashtablaToString(tables)), HttpRequest.defaultHttpContentType, 1, HandleIDAuthenticationResult);
- }
-
- public void FreePlatformCheckIDAuthentication(string _account)
- {
- var url = "http://zysdk.xileyougame.com/api.php/Service/check_mystery?";
- var tables = new Dictionary<string, string>();
- tables["app_id"] = VersionConfig.Get().appId;
- tables["channelid"] = channelId;
- tables["account"] = _account;
- tables["platfrom_id"] = platfromId;
-
- HttpRequest.Instance.RequestHttpGet(StringUtility.Contact(url, HttpRequest.HashtablaToString(tables)), HttpRequest.defaultHttpContentType, 1, HandleCheckIDAuthenticationResult);
- }
-
- private void HandleIDAuthenticationResult(bool _ok, string _result)
- {
- if (_ok)
- {
- if (onFreePlatfromDoIDAuthenticationOk != null)
- {
- var result = JsonMapper.ToObject<FP_DoIDAuthentication>(_result);
- result.card_id = authenticationCardId;
- onFreePlatfromDoIDAuthenticationOk(result);
- }
- }
- else
- {
-
- }
- }
-
- private void HandleCheckIDAuthenticationResult(bool _ok, string _result)
- {
- if (_ok)
- {
- if (onFreePlatfromCheckIDOK != null)
- {
- var result = JsonMapper.ToObject<FP_CheckIDAuthentication>(_result);
- onFreePlatfromCheckIDOK(result);
- }
- }
- else
- {
-
- }
- }
-
- private void HandleFreePlatformLoginOk(JsonData data)
- {
- FP_LoginOk _loginOK = new FP_LoginOk
- {
- token = data["token"].ToString(),
- tokenExpire = data["token_expire"].ToString(),
- account = data["account"].ToString(),
- accountID = int.Parse(data["account_id"].ToString()),
- phone = 0
- };
-
- Account = _loginOK.account;
-
- if (onFreePlatformLoginOk != null)
- {
- onFreePlatformLoginOk(_loginOK);
- }
-
- // string _cachePath = Application.persistentDataPath + "/record_sdk_login_content.txt";
- //
- // if (!File.Exists(_cachePath))
- // {
- // File.Create(_cachePath);
- // }
- //
- // string _content = string.Format("[{0}] sdk鐧婚檰瀹屾垚, 鑾峰緱淇℃伅 (token=\"{1}\", tokenExpire=\"{2}\", account=\"{3}\", accountID=\"{4}\", phone=\"{5}\")",
- // System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"),
- // _loginOK.token,
- // _loginOK.tokenExpire,
- // _loginOK.account,
- // _loginOK.accountID,
- // _loginOK.phone);
- //
- // FileStream _fs = new FileStream(_cachePath, FileMode.Append);
- // StreamWriter _sw = new StreamWriter(_fs);
- // _sw.WriteLine(_content);
- // _sw.Close();
- // _fs.Close();
- }
-
- public void OnServerChargeOk(string orderID, uint coin)
- {
- OperationLogCollect.Instance.RecordEvent(9, coin);
- SendTouTiaoADEvent(2);
-#if (UNITY_IOS || UNITY_ANDROID) && !UNITY_EDITOR
-
- Dictionary<string, string> dict = new Dictionary<string, string>();
- dict.Add("token", AD_Token);
- dict.Add("amount", coin.ToString());
- HttpRequest.Instance.RequestHttpPost("http://tako.lingleigame.com/api/pay?",
- dict,
- "application/x-www-form-urlencoded",
- 1, (result, msg) =>
- {
- Debug.LogFormat("骞垮憡鍏呭�煎煁鐐瑰洖璋冪粨鏋�: {0}, 淇℃伅: {1}", result, msg);
- });
-#endif
- if (onFreePlatformPayOk != null)
- {
- onFreePlatformPayOk();
- }
-
- AndroidJavaClass _jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
- AndroidJavaObject _jo = _jc.GetStatic<AndroidJavaObject>("currentActivity");
- _jo.Call("PayFinished", orderID, "_default_", "CNY", (float)coin / 100);
- }
-
- #endregion
-
- #region 鐑簯SDK鐩稿叧
-
- private string m_Order;
- private float m_Money;
-
- public void TrackRegister(string account)
- {
- AndroidJavaClass _jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
- AndroidJavaObject _jo = _jc.GetStatic<AndroidJavaObject>("currentActivity");
- _jo.Call("TrackRegister", account);
- }
-
- public void TrackLogin(string account)
- {
- AndroidJavaClass _jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
- AndroidJavaObject _jo = _jc.GetStatic<AndroidJavaObject>("currentActivity");
- _jo.Call("TrackLogin", account);
- }
-
- public void TrackPaymentStart(string transactionId, string paymentType, string currencyType, float currencyAmount)
- {
- AndroidJavaClass _jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
- AndroidJavaObject _jo = _jc.GetStatic<AndroidJavaObject>("currentActivity");
- _jo.Call("TrackPaymentStart", transactionId, paymentType, currencyType, currencyAmount);
- }
-
- public void TrackPaymentFinish(string transactionId, string paymentType, string currencyType, float currencyAmount)
- {
- AndroidJavaClass _jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
- AndroidJavaObject _jo = _jc.GetStatic<AndroidJavaObject>("currentActivity");
- _jo.Call("TrackPaymentFinish", transactionId, paymentType, currencyType, currencyAmount);
- }
-
- #endregion
-
- #region 鏋佸厜鎺ㄩ�佺浉鍏�
- public void GeTui_SendLocalMessage(JsonData jsonData)
- {
- // ------ 涓句緥 ------
- // JsonData _params = new JsonData ();
- // _params ["code"] = 2005;
- // _params ["id"] = 5;// id 閲嶈, 鏍囩ず姣忎釜閫氱煡鐨勬洿鏂版垨鑰呯Щ闄�
- // _params ["title"] = "the title";// 鎺ㄩ�佹爣棰�
- // _params ["subtitle"] = "the subtitle";// 鍓爣棰�
- // _params ["content"] = "the content";// 鍏蜂綋鍐呭
- // _params ["badge"] = -1;// 瑙掓爣
- //
- // // 浠ヤ笅涓哄喅瀹氬簲璇ュ涔呭悗寮瑰嚭姝ら�氱煡
- // System.TimeSpan ts = System.DateTime.UtcNow - new System.DateTime (1970, 1, 1, 0, 0, 0, 0);
- // long ret = System.Convert.ToInt64 (ts.TotalSeconds) + 3;// 琛ㄧず3绉掑悗
- // _params ["fireTime"] = ret;
-
-#if UNITY_IOS && !UNITY_EDITOR
- IOSMessageHandle(jsonData.ToJson());
-#elif UNITY_ANDROID && !UNITY_EDITOR
-
- jsonData["fireTime"] = (long)jsonData["fireTime"] * 1000;
-
- AndroidJavaClass _jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
- AndroidJavaObject _jo = _jc.GetStatic<AndroidJavaObject>("currentActivity");
- _jo.Call("addLocalNotification", jsonData.ToJson());
-#endif
- }
-
- public void GeTui_RemoveLocalMessage(string id)
- {
- JsonData _params = new JsonData();
- _params["code"] = 2006;
- _params["id"] = id;// id 閲嶈, 鏍囩ず姣忎釜閫氱煡鐨勬洿鏂版垨鑰呯Щ闄�
-
-#if UNITY_IOS && !UNITY_EDITOR
- IOSMessageHandle(_params.ToJson());
-#elif UNITY_ANDROID && !UNITY_EDITOR
- AndroidJavaClass _jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
- AndroidJavaObject _jo = _jc.GetStatic<AndroidJavaObject>("currentActivity");
- _jo.Call("removeNotification", id);
-#endif
- }
-
- #endregion
-
- public void SendTouTiaoADEvent(int eventType)
- {
-#if !UNITY_EDITOR
- string _url = "http://center.secondworld.net.cn:53004/ad/eventtype/" + VersionConfig.Get().clientPackageFlag + "?";
-
- var tables = new Dictionary<string, string>();
- tables["MAC1"] = AND_MacAddress;
- tables["UA"] = WWW.EscapeURL(AND_UserAgent);
- tables["ANDROIDID1"] = AND_AndroidID;
- tables["IP"] = AND_IP;
- tables["IMEI"] = AND_IMEI;
- tables["event_type"] = eventType.ToString();
-
- string _content = StringUtility.Contact(_url, HttpRequest.HashtablaToString(tables));
-
- Debug.Log("TouTiaoAD: " + _content);
-
- HttpRequest.Instance.RequestHttpGet(_content, HttpRequest.defaultHttpContentType, 1, (result, message) =>
- {
- if (!result)
- {
- Debug.Log(message);
- }
- });
-#endif
- }
-
- //public void WriteDebug(string content)
- //{
- // string _url = Application.persistentDataPath + "/debug_log.txt";
- // System.IO.FileInfo _fileInfo = new System.IO.FileInfo(_url);
- // System.IO.StreamWriter _sw = null;
- // if (_fileInfo.Exists)
- // {
- // _sw = _fileInfo.AppendText();
- // }
- // else
- // {
- // _sw = _fileInfo.CreateText();
- // }
- // _sw.WriteLine(content);
- // _sw.Close();
- // _sw.Dispose();
- //}
-}
+锘縰sing UnityEngine;
+using LitJson;
+using UnityEngine.Events;
+using System.Collections;
+using System.Collections.Generic;
+
+public class SDKUtility : SingletonMonobehaviour<SDKUtility>
+{
+ [System.Runtime.InteropServices.DllImport("__Internal")]
+ private static extern void IOSMessageHandle(string json);
+
+ public enum E_ChargingType
+ {
+ NoCharging = 1,
+ Charging = 2,
+ ChargingFull = 3,
+ }
+
+ /// <summary>
+ /// sdk鍒濆鍖栨槸鍚﹀畬鎴愭爣璇�
+ /// 瀹㈡埛绔竴鑸渶瑕佺瓑寰呰繖涓�间负true鎵嶇户缁�昏緫
+ /// </summary>
+ public bool InitFinished { get; private set; }
+
+ #region 鍩虹瀹氫箟涓庡洖璋�
+
+ /// <summary>
+ /// 褰撳墠璁惧鐢甸噺鍊�
+ /// </summary>
+ public int BatteryLevel { get; private set; }
+ /// <summary>
+ /// 璁惧鐢甸噺鍊兼敼鍙樺洖璋�
+ /// </summary>
+ public UnityAction<int> OnBatteryLevelChanged;
+
+ /// <summary>
+ /// 褰撳墠鍏呯數鐘舵��
+ /// </summary>
+ public E_ChargingType ChargingType { get; private set; }
+ /// <summary>
+ /// 褰撳墠鍏呯數鐘舵�佹敼鍙樺洖璋�
+ /// </summary>
+ public UnityAction<E_ChargingType> OnChargingTypeChanged;
+
+ /// <summary>
+ /// 璁惧淇℃伅
+ /// </summary>
+ public DeviceInfo Device { get; private set; }
+ /// <summary>
+ /// 璁惧淇℃伅鏀瑰彉鍥炶皟
+ /// </summary>
+ public UnityAction<DeviceInfo> OnDeviceInfoChanged;
+
+ /// <summary>
+ /// 褰撳墠缃戠粶鐘舵��
+ /// </summary>
+ public NetworkReachability NetworkType { get; private set; }
+ /// <summary>
+ /// 褰撳墠缃戠粶鐘舵�佹敼鍙樺洖璋�
+ /// </summary>
+ public UnityAction<NetworkReachability> OnNetworkStatusChanged;
+
+ /// <summary>
+ /// 鏄惁宸茬粡灏哠treamingAsset鎷疯礉鑷崇洰鏍囪矾寰�
+ /// </summary>
+ public bool AssetCopyFinished { get; private set; }
+
+ /// <summary>
+ /// 瀹夊崜璁惧鏍圭洰褰�
+ /// </summary>
+ public string DeviceRootPath { get; private set; }
+
+ #endregion
+
+ #region 鏋佸厜鎺ㄩ��
+ public string RegistrationID { get; private set; }
+ #endregion
+
+ #region 鑷敱sdk
+ public FP_LoginOk FreePlatformInfo { get; private set; }
+ #endregion
+
+ private JsonData m_Json = new JsonData();
+
+ public void Init()
+ {
+ RegistrationID = string.Empty;
+ AssetCopyFinished = false;
+#if !UNITY_EDITOR
+ if (InitFinished)
+ {
+ return;
+ }
+
+#if UNITY_IOS
+
+ var assetsCopyFinishVersion = LocalSave.GetString("AssetCopyCompleted_IOS");
+ if (string.IsNullOrEmpty(assetsCopyFinishVersion))
+ {
+ AssetCopyFinished = false;
+ }
+ else
+ {
+ AssetCopyFinished = VersionConfig.Get().version == assetsCopyFinishVersion;
+ }
+
+#elif UNITY_ANDROID
+
+ SyncClientPackageID();
+
+#endif
+
+ InitFinished = false;
+ m_Json.Clear();
+ m_Json["code"] = CodeU2A.Init;
+ SendMessageToSDK(m_Json);
+#endif
+ }
+
+ private void OnApplicationFocus(bool focus)
+ {
+#if !UNITY_EDITOR
+ m_Json.Clear();
+ if (focus)
+ {
+ m_Json["code"] = CodeU2A.BatteryListenStart;
+ StopCoroutine("ProcessNetworkStatus");
+ StartCoroutine("ProcessNetworkStatus");
+ }
+ else
+ {
+ m_Json["code"] = CodeU2A.BatteryListenStop;
+ StopCoroutine("ProcessNetworkStatus");
+ }
+ SendMessageToSDK(m_Json);
+#endif
+ }
+
+ private IEnumerator ProcessNetworkStatus()
+ {
+ while (true)
+ {
+ if (Application.internetReachability != NetworkType)
+ {
+ NetworkType = Application.internetReachability;
+
+ if (OnNetworkStatusChanged != null)
+ {
+ OnNetworkStatusChanged(NetworkType);
+ }
+ }
+ yield return WaitingForSecondConst.WaitMS1000;
+ }
+ }
+
+ #region 涓氬姟灞傚畾涔夌浉鍏抽�昏緫
+
+ public void InstallAPK(string path)
+ {
+ m_Json.Clear();
+ m_Json["code"] = CodeU2A.InstallAPK;
+ m_Json["path"] = path;
+ SendMessageToSDK(m_Json);
+ }
+
+ public void CopyAsset()
+ {
+ if (AssetCopyFinished)
+ {
+ return;
+ }
+ m_Json.Clear();
+ m_Json["code"] = CodeU2A.AssetCopy;
+ SendMessageToSDK(m_Json);
+ }
+
+ public void CopyContent(string content)
+ {
+ m_Json.Clear();
+ m_Json["code"] = CodeU2A.CopyContent;
+ m_Json["content"] = content;
+ SendMessageToSDK(m_Json);
+ }
+
+ public void RestartApp()
+ {
+ m_Json.Clear();
+ m_Json["code"] = CodeU2A.RestartApp;
+ SendMessageToSDK(m_Json);
+ }
+
+ public void OpenUrl(string url)
+ {
+ m_Json.Clear();
+ m_Json["code"] = CodeU2A.OpenWebView;
+ m_Json["url"] = url;
+ SendMessageToSDK(m_Json);
+ }
+
+ public void MakeKeyAndVisible()
+ {
+#if !UNITY_EDITOR
+ m_Json.Clear();
+ m_Json["code"] = CodeU2A.MakeKeyAndVisible;
+ SendMessageToSDK(m_Json);
+#endif
+ }
+
+ public void SyncClientPackageID()
+ {
+#if !UNITY_EDITOR
+#if UNITY_ANDROID
+ m_Json.Clear();
+ m_Json["code"] = CodeU2A.ClientPackage;
+ m_Json["clientPkgID"] = VersionConfig.Get().clientPackageFlag;
+ SendMessageToSDK(m_Json);
+#endif
+#endif
+ }
+
+ #endregion
+
+ #region 澶勭悊涓嶴DK浜や簰鐨勫簳灞傛柟娉�
+
+ public static AndroidJavaObject GetApplicationContext()
+ {
+ using (AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
+ {
+ using (AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity"))
+ {
+ return jo.Call<AndroidJavaObject>("getApplicationContext");
+ }
+ }
+ }
+
+ private void SendMessageToSDK(JsonData json)
+ {
+#if !UNITY_EDITOR
+#if UNITY_ANDROID
+ using (AndroidJavaClass H2engineSDK = new AndroidJavaClass("com.secondworld.univeralsdk.H2EngineSDK"))
+ {
+ H2engineSDK.CallStatic("HandleUnityMessage", json.ToJson());
+ }
+#elif UNITY_IOS
+ IOSMessageHandle(json.ToJson());
+#endif
+#endif
+ }
+
+ public void HandleSdkMessage(string jsonString)
+ {
+ Debug.Log("鏀跺埌SDK鍙戞潵鐨勪俊鎭�: " + jsonString);
+ var _json = JsonMapper.ToObject(jsonString);
+ var _code = (int)_json["code"];
+ switch (_code)
+ {
+ case CodeA2U.DeviceInfo:
+
+ Device = new DeviceInfo ();
+ Device.uniqueID = _json ["unique_id"].ToString ();
+ Device.androidID = _json ["android_id"].ToString ();// ios骞冲彴涓嬩负idfa
+ Device.userAgent = _json ["userAgent"].ToString ();
+#if UNITY_ANDROID
+ Device.macAddress = _json ["mac"].ToString ();
+ Device.imei = _json ["imei"].ToString ();
+ Device.totalMemory = (int)_json ["memoryTotal"];
+#endif
+ if (OnDeviceInfoChanged != null)
+ {
+ OnDeviceInfoChanged(Device);
+ }
+
+ break;
+ case CodeA2U.AssetCopyFinished:
+ AssetCopyFinished = true;
+ break;
+ case CodeA2U.BatteryLevel:
+
+ BatteryLevel = (int)_json["level"];
+ if (OnBatteryLevelChanged != null)
+ {
+ OnBatteryLevelChanged(BatteryLevel);
+ }
+
+ break;
+ case CodeA2U.BatteryCharging:
+
+ ChargingType = (E_ChargingType)((int)_json["status"]);
+ if (OnChargingTypeChanged != null)
+ {
+ OnChargingTypeChanged(ChargingType);
+ }
+
+ break;
+ case CodeA2U.SdkInitComplete:
+ InitFinished = true;
+ break;
+ case CodeA2U.PushClientID:
+ RegistrationID = _json["clientID"].ToString();
+ break;
+ case CodeA2U.ExternalStorage:
+ DeviceRootPath = _json["path"].ToString();
+ break;
+
+ case CodeA2U.FreePlatformInitOk:
+
+ if (onFreePlatformInitOk != null)
+ {
+ onFreePlatformInitOk();
+ }
+
+ break;
+ case CodeA2U.FreePlatformInitFail:
+ if (onFreePlatformInitFail != null)
+ {
+ onFreePlatformInitFail();
+ }
+ break;
+ case CodeA2U.FreePlatformRegisterOk:
+ HandleFreePlatformRegisteOk(_json);
+ break;
+ case CodeA2U.FreePlatformLoginOk:
+ HandleFreePlatformLoginOk(_json["info"]);
+ break;
+ case CodeA2U.FreePlatformLoginFail:
+ if (onFreePlatformLoginFail != null)
+ {
+ onFreePlatformLoginFail();
+ }
+ break;
+ case CodeA2U.FreePlatformLogoutOk:
+ if (onFreePlatformLogoutOk != null)
+ {
+ onFreePlatformLogoutOk();
+ }
+ break;
+ case CodeA2U.FreePlatformLogoutFail:
+ if (onFreePlatformLogoutFail != null)
+ {
+ onFreePlatformLogoutFail();
+ }
+ break;
+ case CodeA2U.FreePlatformPayOk:
+ if (onFreePlatformPayOk != null)
+ {
+ onFreePlatformPayOk();
+ }
+ break;
+ case CodeA2U.FreePlatformPayFail:
+ if (onFreePlatformPayFail != null)
+ {
+ onFreePlatformPayFail();
+ }
+ break;
+ case CodeA2U.FreePlatformPayCancel:
+ if (onFreePlatformPayCancel != null)
+ {
+ onFreePlatformPayCancel();
+ }
+ break;
+ }
+ }
+
+ #endregion
+
+ #region 浜や簰鐩稿叧绾﹀畾缂栧彿
+
+ private static class CodeA2U
+ {
+ #region 鑷敱sdk_code
+ public const int FreePlatformInitOk = 10;
+ public const int FreePlatformInitFail = 11;
+ public const int FreePlatformLoginOk = 12;
+ public const int FreePlatformLoginFail = 13;
+ public const int FreePlatformLoginCancel = 14;
+ public const int FreePlatformLogoutOk = 15;
+ public const int FreePlatformLogoutFail = 16;
+ public const int FreePlatformSwitchAccountOk = 17;
+ public const int FreePlatformPayOk = 18;
+ public const int FreePlatformPayFail = 19;
+ public const int FreePlatformPayCancel = 20;
+ public const int FreePlatformRegisterOk = 21;
+ #endregion
+
+ #region 鍩虹sdk_code
+ /**
+ * 璧勬簮鎷疯礉瀹屾垚
+ */
+ public const int AssetCopyFinished = 0;
+ /**
+ * 鐢甸噺鏀瑰彉
+ */
+ public const int BatteryLevel = 1;
+ /**
+ * 鍏呯數鐘舵�佹敼鍙�
+ */
+ public const int BatteryCharging = 2;
+ /**
+ * 鍥炶皟sdk閫昏緫瀹屾瘯
+ * */
+ public const int SdkInitComplete = 90;
+ /**
+ * 鍥炶皟android璁惧淇℃伅
+ * */
+ public const int DeviceInfo = 3;
+ /**
+ * 鍥炶皟鎺ㄩ�佺殑鐙珛id
+ * */
+ public const int PushClientID = 4;
+ /**
+ * 鍥炶皟澶栭儴瀛樺偍鏍圭洰褰曞湴鍧�
+ */
+ public const int ExternalStorage = 5;
+ #endregion
+ }
+
+ private static class CodeU2A
+ {
+ /**
+ * 鎵ц璧勬簮鎷疯礉
+ */
+ public const int AssetCopy = 0;
+ /**
+ * 鎵ц寮�濮嬬數閲忔敼鍙�,鍏呯數鐘舵�佹敼鍙樼洃鍚�
+ */
+ public const int BatteryListenStart = 1;
+ /**
+ * 鎵ц鍋滄鐢甸噺鏀瑰彉,鍏呯數鐘舵�佹敼鍙樼洃鍚�
+ */
+ public const int BatteryListenStop = 2;
+ /**
+ * 鑾峰彇鍞竴璇嗗埆鐮�
+ */
+ public const int UniqueID = 3;
+ /**
+ * 鐢宠鍦ˋndroidManifest鏂囦欢涓�
+ */
+ public const int RequestManifestPermissions = 4;
+ /**
+ * 鍗曠嫭鍔ㄦ�佺敵璇锋煇涓�涓潈闄�
+ */
+ public const int RequestPermission = 5;
+ /**
+ * 閲嶅惎搴旂敤
+ */
+ public const int RestartApp = 6;
+ /**
+ * 鎷疯礉鏂囨湰淇℃伅
+ */
+ public const int CopyContent = 7;
+ /**
+ * 鎵撳紑缃戝潃
+ */
+ public const int OpenWebView = 8;
+ /**
+ * SDK鍒濆鍖�, 瀹屽叏鑷姩鍒濆鍖栫殑娴佺▼, 瀹屾垚蹇呰閫昏緫鍚庡啀鍥炶皟鍥炲幓
+ */
+ public const int Init = 9;
+ /**
+ * 瀹夎搴旂敤
+ */
+ public const int InstallAPK = 10;
+ /**
+ * 澶栭儴瀛樺偍鏍圭洰褰曞湴鍧�
+ */
+ public const int ExteneralStorage = 11;
+ /**
+ * 鑷敱sdk鐩稿叧
+ * */
+ public const int FreePlatformInit = 100;
+ public const int FreePlatformLogin = 101;
+ public const int FreePlatformLogout = 102;
+ public const int FreePlatformSwitchAccount = 103;
+ public const int FreePlatformPay = 104;
+ public const int PayFinished = 105;
+ /**
+ * 鏋佸厜鎺ㄩ��
+ * */
+ public const int JPushAddLocalMessage = 200;
+ public const int JPushRemoveLocalMessage = 201;
+ /**
+ * IOS鐗规畩闇�姹�
+ */
+ public const int MakeKeyAndVisible = 300;
+ /**
+ * ClientPackage鍚憇dk鍙戦�佸垎鍖卛d
+ */
+ public const int ClientPackage = 400;
+ }
+
+ #endregion
+
+ public class DeviceInfo
+ {
+ public string imei;
+ public string macAddress;
+ public string androidID;
+ public string uniqueID;
+ public string userAgent;
+ public int totalMemory;
+ }
+
+ #region 鑷敱sdk鐩稿叧
+
+ public UnityAction onFreePlatformInitOk;
+ public UnityAction onFreePlatformInitFail;
+ public UnityAction<FP_LoginOk> onFreePlatformLoginOk;
+ public UnityAction onFreePlatformLoginFail;
+ public UnityAction onFreePlatformLogoutOk;
+ public UnityAction onFreePlatformLogoutFail;
+ public UnityAction onFreePlatformPayOk;
+ public UnityAction onFreePlatformPayFail;
+ public UnityAction onFreePlatformPayCancel;
+ public UnityAction onFreePlatformBindOk;
+ public UnityAction onFreePlatformBindFail;
+
+ public class FP_LoginOk
+ {
+ public string account;
+ public string token;
+ public string tokenExpire;
+ public int phone;
+ public int accountID;
+ }
+
+ public struct FP_CheckIDAuthentication
+ {
+ public string errorcode;
+ public string errordesc;
+ public string type;
+ public string card_id;
+ }
+
+ public struct FP_DoIDAuthentication
+ {
+ public string errorcode;
+ public string errordesc;
+ public string card_id;
+ }
+
+ string authenticationCardId = "";
+ public string channelId = "1000";
+ public string platfromId = "1000";
+ public UnityAction<FP_CheckIDAuthentication> onFreePlatfromCheckIDOK;
+ public UnityAction<FP_DoIDAuthentication> onFreePlatfromDoIDAuthenticationOk;
+
+
+ public void FreePlatformInit()
+ {
+#if !UNITY_EDITOR
+ m_Json.Clear();
+ m_Json["code"] = CodeU2A.FreePlatformInit;
+ SendMessageToSDK(m_Json);
+#endif
+ }
+
+ public void FreePlatformBindPhone()
+ {
+#if UNITY_ANDROID
+ AndroidJavaClass _jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
+ AndroidJavaObject _jo = _jc.GetStatic<AndroidJavaObject>("currentActivity");
+ _jo.Call("BindPhone");
+#endif
+ }
+
+ /// <summary>
+ /// 鑷敱SDK鐧婚檰
+ /// </summary>
+ public void FreePlatformLogin()
+ {
+#if !UNITY_EDITOR
+ m_Json.Clear();
+ m_Json["code"] = CodeU2A.FreePlatformLogin;
+ SendMessageToSDK(m_Json);
+#endif
+ }
+
+ /// <summary>
+ /// 鑷敱SDK鐧诲嚭
+ /// </summary>
+ public void FreePlatformLoginout()
+ {
+#if !UNITY_EDITOR
+ m_Json.Clear();
+ m_Json["code"] = CodeU2A.FreePlatformLogout;
+ SendMessageToSDK(m_Json);
+#endif
+ }
+
+ public void FreePlatformSwitchAccount()
+ {
+#if UNITY_ANDROID
+ AndroidJavaClass _jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
+ AndroidJavaObject _jo = _jc.GetStatic<AndroidJavaObject>("currentActivity");
+ _jo.Call("SwitchAccount");
+#endif
+ }
+
+ private Dictionary<string, string> m_PaymentTable = new Dictionary<string, string>();
+ private string m_EncodeKey = "03sujm7gerywdvyd5vkkk772rs4by230";
+
+ /// <summary>
+ /// 鑷敱SDK鏀粯 fixed sdk 鏀粯閫昏緫淇敼
+ /// </summary>
+ public void FreePlatformPay(string title, float money, string cpInfo)
+ {
+ m_PaymentTable["ProductID"] = "snxxz";
+ m_PaymentTable["OperatorID"] = VersionConfig.Get().appId;
+ m_PaymentTable["RegionName"] = "s" + ServerListCenter.Instance.currentServer.region_flag;
+ m_PaymentTable["TimeStamp"] = ((long)(System.DateTime.Now - System.TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1))).TotalSeconds).ToString();
+ m_PaymentTable["Time"] = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+ m_PaymentTable["EventID"] = "12001";
+ m_PaymentTable["IP"] = DeviceUtility.GetIp();
+ m_PaymentTable["AccountID"] = FreePlatformInfo.account;
+ m_PaymentTable["SessionID"] = "11";
+ m_PaymentTable["Level"] = PlayerDatas.Instance.baseData.LV.ToString();
+ m_PaymentTable["VIPLevel"] = PlayerDatas.Instance.baseData.VIPLv.ToString();
+ m_PaymentTable["CurrencyAmount"] = money.ToString();
+ m_PaymentTable["OrderTitle"] = title;
+ m_PaymentTable["OrderInfo"] = cpInfo;
+ m_PaymentTable["AppID"] = VersionConfig.Get().appId;
+
+ var _stringBuilder = new System.Text.StringBuilder();
+ var _md5Body = _stringBuilder.Append(m_PaymentTable["AppID"]).
+ Append(m_PaymentTable["AccountID"]).
+ Append(m_PaymentTable["TimeStamp"]).
+ Append(m_PaymentTable["CurrencyAmount"]).
+ Append(m_EncodeKey);
+
+ var _md5Encode = System.Security.Cryptography.MD5.Create();
+ var _encodeResult = _md5Encode.ComputeHash(System.Text.Encoding.UTF8.GetBytes(_md5Body.ToString()));
+
+ _stringBuilder.Remove(0, _stringBuilder.Length);
+ for (int i = 0; i < _encodeResult.Length; ++i)
+ {
+ _stringBuilder.Append(_encodeResult[i].ToString("x2"));
+ }
+
+ m_PaymentTable["Sign"] = _stringBuilder.ToString();
+ m_PaymentTable["RoleID"] = PlayerDatas.Instance.baseData.PlayerName;
+
+ _stringBuilder.Remove(0, _stringBuilder.Length);
+
+ HttpRequest.Instance.RequestHttpGet(_stringBuilder.Append("http://recharge.game.173on.com:11000/api?").
+ Append(HttpRequest.HashtablaToString(m_PaymentTable)).ToString(),
+ HttpRequest.defaultHttpContentType, 1, (bool result, string message) =>
+ {
+ if (result)
+ {
+ JsonData _json = JsonMapper.ToObject(message);
+
+ int _callbackResult = (int)_json["result"];
+
+ if (_callbackResult == 1)
+ {
+#if !UNITY_EDITOR
+ m_Json.Clear();
+ m_Json["code"] = CodeU2A.FreePlatformPay;
+ m_Json["orderId"] = _json["orderid"].ToString();
+ m_Json["mount"] = money;
+ m_Json["cpInfo"] = cpInfo;
+ m_Json["title"] = title;
+#if UNITY_IOS
+ m_Json["identifier"] = VersionConfig.Get().bundleIdentifier;
+#endif
+ SendMessageToSDK(m_Json);
+#endif
+ }
+ else
+ {
+ Debug.Log(_json["msg"].ToString());
+ if (onFreePlatformPayFail != null)
+ {
+ onFreePlatformPayFail();
+ }
+ }
+ }
+ else
+ {
+ if (onFreePlatformPayFail != null)
+ {
+ onFreePlatformPayFail();
+ }
+ }
+ });
+ }
+
+ public void FreePlatformDoIDAuthentication(string _account, string _userName, string _idNumber)
+ {
+ authenticationCardId = _idNumber;
+
+ var tables = new Dictionary<string, string>();
+ tables["app_id"] = VersionConfig.Get().appId;
+ tables["account"] = _account;
+ tables["card_id"] = _idNumber;
+ tables["mac"] = DeviceUtility.GetMac();
+ tables["rolename"] = _userName;
+ tables["channelid"] = channelId;
+
+ var url = "http://zysdk.xileyougame.com/api.php/Service/anti_mystery?";
+ HttpRequest.Instance.RequestHttpGet(StringUtility.Contact(url, HttpRequest.HashtablaToString(tables)), HttpRequest.defaultHttpContentType, 1, HandleIDAuthenticationResult);
+ }
+
+ public void FreePlatformCheckIDAuthentication(string _account)
+ {
+ var url = "http://zysdk.xileyougame.com/api.php/Service/check_mystery?";
+ var tables = new Dictionary<string, string>();
+ tables["app_id"] = VersionConfig.Get().appId;
+ tables["channelid"] = channelId;
+ tables["account"] = _account;
+ tables["platfrom_id"] = platfromId;
+
+ HttpRequest.Instance.RequestHttpGet(StringUtility.Contact(url, HttpRequest.HashtablaToString(tables)), HttpRequest.defaultHttpContentType, 1, HandleCheckIDAuthenticationResult);
+ }
+
+ private void HandleIDAuthenticationResult(bool _ok, string _result)
+ {
+ if (_ok)
+ {
+ if (onFreePlatfromDoIDAuthenticationOk != null)
+ {
+ var result = JsonMapper.ToObject<FP_DoIDAuthentication>(_result);
+ result.card_id = authenticationCardId;
+ onFreePlatfromDoIDAuthenticationOk(result);
+ }
+ }
+ }
+
+ private void HandleCheckIDAuthenticationResult(bool _ok, string _result)
+ {
+ if (_ok)
+ {
+ if (onFreePlatfromCheckIDOK != null)
+ {
+ var result = JsonMapper.ToObject<FP_CheckIDAuthentication>(_result);
+ onFreePlatfromCheckIDOK(result);
+ }
+ }
+ }
+
+ private void BuildFreePlatformInfo(JsonData json)
+ {
+ if (FreePlatformInfo == null)
+ {
+ FreePlatformInfo = new FP_LoginOk();
+ }
+
+ IDictionary _iDict = json as IDictionary;
+
+ if (_iDict.Contains("token"))
+ {
+ FreePlatformInfo.token = json["token"].ToString();
+ }
+ if (_iDict.Contains("token_expire"))
+ {
+ FreePlatformInfo.tokenExpire = json["token_expire"].ToString();
+ }
+ if (_iDict.Contains("account"))
+ {
+ FreePlatformInfo.account = json["account"].ToString();
+ }
+ if (_iDict.Contains("account_id"))
+ {
+ int.TryParse(json["account_id"].ToString(), out FreePlatformInfo.accountID);
+ }
+
+ FreePlatformInfo.phone = 0;
+ }
+
+ private void HandleFreePlatformRegisteOk(JsonData json)
+ {
+ BuildFreePlatformInfo(json);
+ }
+
+ private void HandleFreePlatformLoginOk(JsonData data)
+ {
+ BuildFreePlatformInfo(data);
+
+ if (onFreePlatformLoginOk != null)
+ {
+ onFreePlatformLoginOk(FreePlatformInfo);
+ }
+ }
+
+ public void OnServerChargeOk(string orderID, uint coin)
+ {
+ OperationLogCollect.Instance.RecordEvent(9, coin);
+
+ if (onFreePlatformPayOk != null)
+ {
+ onFreePlatformPayOk();
+ }
+
+ m_Json.Clear();
+ m_Json["code"] = CodeU2A.PayFinished;
+ m_Json["orderID"] = orderID;
+ m_Json["payType"] = "_default_";
+ m_Json["moneyType"] = "CNY";
+ m_Json["money"] = (float)coin / 100;
+ SendMessageToSDK(m_Json);
+ }
+ #endregion
+
+ #region 鏋佸厜鎺ㄩ�佺浉鍏�
+ public void GeTui_SendLocalMessage(JsonData jsonData)
+ {
+ DebugEx.Log("GeTui_SendLocalMessage:" + jsonData["id"]);
+ // ------ 涓句緥 ------
+ // JsonData _params = new JsonData ();
+ // _params ["code"] = 2005;
+ // _params ["id"] = 5;// id 閲嶈, 鏍囩ず姣忎釜閫氱煡鐨勬洿鏂版垨鑰呯Щ闄�
+ // _params ["title"] = "the title";// 鎺ㄩ�佹爣棰�
+ // _params ["subtitle"] = "the subtitle";// 鍓爣棰�
+ // _params ["content"] = "the content";// 鍏蜂綋鍐呭
+ // _params ["badge"] = -1;// 瑙掓爣
+ //
+ // // 浠ヤ笅涓哄喅瀹氬簲璇ュ涔呭悗寮瑰嚭姝ら�氱煡
+ // System.TimeSpan ts = System.DateTime.UtcNow - new System.DateTime (1970, 1, 1, 0, 0, 0, 0);
+ // long ret = System.Convert.ToInt64 (ts.TotalSeconds) + 3;// 琛ㄧず3绉掑悗
+ // _params ["fireTime"] = ret;
+#if !UNITY_EDITOR
+ jsonData["code"] = CodeU2A.JPushAddLocalMessage;
+#if UNITY_ANDROID
+ jsonData["fireTime"] = (long)jsonData["fireTime"] * 1000;
+#endif
+ SendMessageToSDK(jsonData);
+#endif
+ }
+
+ public void GeTui_RemoveLocalMessage(string id)
+ {
+ DebugEx.Log("GeTui_RemoveLocalMessage:" + id);
+#if !UNITY_EDITOR
+ m_Json.Clear();
+ m_Json["code"] = CodeU2A.JPushRemoveLocalMessage;
+ m_Json["id"] = id;// id 閲嶈, 鏍囩ず姣忎釜閫氱煡鐨勬洿鏂版垨鑰呯Щ闄�
+
+ SendMessageToSDK(m_Json);
+#endif
+ }
+
+ #endregion
+}
--
Gitblit v1.8.0