浏览代码

好游快爆SDK

guodong 2 年之前
父节点
当前提交
efb868be91
共有 100 个文件被更改,包括 2909 次插入103 次删除
  1. 3 0
      GameClient/Assets/Game/HotUpdate/Constant/ConstMessage.cs
  2. 3 5
      GameClient/Assets/Game/HotUpdate/Controller/GameController.cs
  3. 2 2
      GameClient/Assets/Game/HotUpdate/Controller/LogServerHelper.cs
  4. 0 2
      GameClient/Assets/Game/HotUpdate/GameConfig.cs
  5. 0 23
      GameClient/Assets/Game/HotUpdate/Platform/PlatformManager.cs
  6. 149 0
      GameClient/Assets/Game/HotUpdate/Platform/QDHYKBManager.cs
  7. 1 1
      GameClient/Assets/Game/HotUpdate/Platform/QDHYKBManager.cs.meta
  8. 74 0
      GameClient/Assets/Game/HotUpdate/Platform/QDManager.cs
  9. 1 1
      GameClient/Assets/Game/HotUpdate/Platform/QDManager.cs.meta
  10. 12 23
      GameClient/Assets/Game/HotUpdate/Platform/QDTapTapManager.cs
  11. 11 0
      GameClient/Assets/Game/HotUpdate/Platform/QDTapTapManager.cs.meta
  12. 70 41
      GameClient/Assets/Game/HotUpdate/Views/Login/LoginView.cs
  13. 8 0
      GameClient/Assets/Game/HotUpdate/com.meta
  14. 8 0
      GameClient/Assets/Game/HotUpdate/com/m3839.meta
  15. 8 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk.meta
  16. 8 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives.meta
  17. 58 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/HykbGameArchives.cs
  18. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/HykbGameArchives.cs.meta
  19. 8 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/bean.meta
  20. 140 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/bean/GameArchivesDataBean.cs
  21. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/bean/GameArchivesDataBean.cs.meta
  22. 8 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/listener.meta
  23. 53 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/listener/HykbLoadArchivesListener.cs
  24. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/listener/HykbLoadArchivesListener.cs.meta
  25. 50 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/listener/HykbReadArchivesListener.cs
  26. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/listener/HykbReadArchivesListener.cs.meta
  27. 48 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/listener/HykbSaveArchivesListener.cs
  28. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/listener/HykbSaveArchivesListener.cs.meta
  29. 8 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs.meta
  30. 168 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/HykbAuxsSDK.cs
  31. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/HykbAuxsSDK.cs.meta
  32. 8 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/bean.meta
  33. 77 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/bean/HykbActivationUiInfo.cs
  34. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/bean/HykbActivationUiInfo.cs.meta
  35. 79 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/bean/HykbGiftUiInfo.cs
  36. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/bean/HykbGiftUiInfo.cs.meta
  37. 8 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener.meta
  38. 33 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbAuxActivationCheckListener.cs
  39. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbAuxActivationCheckListener.cs.meta
  40. 36 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbAuxActivationListener.cs
  41. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbAuxActivationListener.cs.meta
  42. 38 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbAuxGiftListener.cs
  43. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbAuxGiftListener.cs.meta
  44. 36 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbAuxInitListener.cs
  45. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbAuxInitListener.cs.meta
  46. 50 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbV2AuxActivationListener.cs
  47. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbV2AuxActivationListener.cs.meta
  48. 51 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbV2AuxGiftListener.cs
  49. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbV2AuxGiftListener.cs.meta
  50. 50 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbV2AuxInitListener.cs
  51. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbV2AuxInitListener.cs.meta
  52. 8 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/common.meta
  53. 64 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/common/HykbContext.cs
  54. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/common/HykbContext.cs.meta
  55. 8 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login.meta
  56. 124 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/HykbLogin.cs
  57. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/HykbLogin.cs.meta
  58. 8 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/bean.meta
  59. 73 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/bean/HykbUser.cs
  60. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/bean/HykbUser.cs.meta
  61. 8 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener.meta
  62. 31 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbAntiListener.cs
  63. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbAntiListener.cs.meta
  64. 82 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbInitListener.cs
  65. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbInitListener.cs.meta
  66. 46 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbLoginListener.cs
  67. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbLoginListener.cs.meta
  68. 68 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbUserListener.cs
  69. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbUserListener.cs.meta
  70. 51 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbV2InitListener.cs
  71. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbV2InitListener.cs.meta
  72. 8 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/paid.meta
  73. 51 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/paid/HykbCheckListener.cs
  74. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/paid/HykbCheckListener.cs.meta
  75. 31 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/paid/HykbPaidChecker.cs
  76. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/paid/HykbPaidChecker.cs.meta
  77. 8 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay.meta
  78. 78 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/HykbPay.cs
  79. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/HykbPay.cs.meta
  80. 8 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/bean.meta
  81. 63 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/bean/HykbPayInfo.cs
  82. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/bean/HykbPayInfo.cs.meta
  83. 8 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/listener.meta
  84. 39 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/listener/HykbPayListener.cs
  85. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/listener/HykbPayListener.cs.meta
  86. 61 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/listener/HykbV2PayListener.cs
  87. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/listener/HykbV2PayListener.cs.meta
  88. 8 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/single.meta
  89. 35 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/single/UnionFcmListener.cs
  90. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/single/UnionFcmListener.cs.meta
  91. 54 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/single/UnionFcmSDK.cs
  92. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/single/UnionFcmSDK.cs.meta
  93. 81 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/single/UnionFcmUser.cs
  94. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/single/UnionFcmUser.cs.meta
  95. 44 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/single/UnionV2FcmListener.cs
  96. 11 0
      GameClient/Assets/Game/HotUpdate/com/m3839/sdk/single/UnionV2FcmListener.cs.meta
  97. 13 3
      GameClient/Assets/Game/Launcher/LauncherConfig.cs
  98. 2 2
      GameClient/Assets/Game/Launcher/Log/LogServerHelperHttp.cs
  99. 8 0
      GameClient/Assets/Game/Launcher/Platform.meta
  100. 10 0
      GameClient/Assets/Game/Launcher/Platform/ChannelID.cs

+ 3 - 0
GameClient/Assets/Game/HotUpdate/Constant/ConstMessage.cs

@@ -2,6 +2,9 @@ namespace GFGGame
 {
     public class ConstMessage
     {
+        public const string ON_PLATFORM_SDK_INITED = "INIT_PLATFORM_SDK_SUCCESS";
+        public const string ON_PLATFORM_SDK_LOGINED = "ON_PLATFORM_SDK_LOGINED";
+
         public const string DRESS_UP_SCORE_CHANGED = "DRESS_UP_SCORE_CHANGED";
         public const string ROLE_GOLD_CHANGED = "ROLE_GOLD_CHANGED";
         public const string ITEM_CHANGED = "ITEM_CHANGED";

+ 3 - 5
GameClient/Assets/Game/HotUpdate/Controller/GameController.cs

@@ -38,8 +38,6 @@ namespace GFGGame
             {
                 //初始化游戏配置
                 GameConfig.InitData(data);
-                //初始化平台配置
-                PlatformManager.InitPlatform();
                 //显示登录
                 LoginController.ShowLogin();
             });
@@ -96,7 +94,7 @@ namespace GFGGame
 
         public static async ETTask PreEnterGameAsync()
         {
-            PlatformTapManager.Instance.OnEnterGame();
+            QDTapTapManager.Instance.OnEnterGame();
             RoleDataHandler.StartUpdate();
 
             GFGUIPackage.AddPackage(ResPathUtil.GetUIPackagePath("CommonGame"));
@@ -144,7 +142,7 @@ namespace GFGGame
         public static void QuitToLoginView(bool logout)
         {
             GameGlobal.DataInited = false;
-            PlatformTapManager.Instance.OnQuitGame();
+            QDManager.OnQuitToLoginView();
             GameGlobal.isVisitor = false;
             GameGlobal.antiAddiction = true;
             GameGlobal.userId = 0;
@@ -186,7 +184,7 @@ namespace GFGGame
         //注销
         public static async ETTask Logout()
         {
-            if (PlatformManager.IsTaptap)
+            if (QDManager.IsTaptap)
             {
                 await TDSUser.Logout();
             }

+ 2 - 2
GameClient/Assets/Game/HotUpdate/Controller/LogServerHelper.cs

@@ -17,7 +17,7 @@ namespace GFGGame
             logData.DtEventTime = DateTimeUtil.GetNowTime(DateTimeUtil.FormatE);
             logData.PlatFormId = LauncherConfig.platformId;
             logData.ServerId = zoneScene.GetComponent<ServerInfosComponent>().CurrentServerId;
-            logData.ChannelId = GameConfig.ChannelId;
+            logData.ChannelId = LauncherConfig.ChannelId;
             logData.Account = SystemInfo.deviceUniqueIdentifier;
             logData.EventType = node;
             var logStr = zoneScene.GetComponent<LogSplicingComponent>().LogObjectToStr(logData);
@@ -36,7 +36,7 @@ namespace GFGGame
             logData.EventId = GenerateIDUtil.GenerateId();
             logData.DtEventTime = DateTimeUtil.GetNowTime(DateTimeUtil.FormatE);
             logData.PlatFormId = LauncherConfig.platformId;
-            logData.ChannelId = GameConfig.ChannelId;
+            logData.ChannelId = LauncherConfig.ChannelId;
             logData.ServerId = zoneScene.GetComponent<ServerInfosComponent>().CurrentServerId;
             logData.PlayerId = zoneScene.GetComponent<RoleInfosComponent>().CurrentRoleId;
             logData.PlayerName = zoneScene.GetComponent<RoleInfosComponent>().GetCurrentRoleName();

+ 0 - 2
GameClient/Assets/Game/HotUpdate/GameConfig.cs

@@ -12,8 +12,6 @@ namespace GFGGame
         public static string PlatformName;
         public static string logApiReportUrl;
         public static int showGM;
-        //渠道id
-        public static int ChannelId = 1;
 
         public static void InitData(string json)
         {

+ 0 - 23
GameClient/Assets/Game/HotUpdate/Platform/PlatformManager.cs

@@ -1,23 +0,0 @@
-namespace GFGGame
-{
-    public class PlatformManager
-    {
-        public static void InitPlatform()
-        {
-            switch(GameConfig.PlatformName)
-            {
-                case PlatformName.TapTap:
-                    PlatformTapManager.Instance.InitSDK();
-                    break;
-            }
-        }
-
-        public static bool IsTaptap
-        {
-            get
-            {
-                return GameConfig.PlatformName == PlatformName.TapTap;
-            }
-        }
-    }
-}

+ 149 - 0
GameClient/Assets/Game/HotUpdate/Platform/QDHYKBManager.cs

@@ -0,0 +1,149 @@
+using System;
+using com.m3839.sdk;
+using com.m3839.sdk.login;
+using com.m3839.sdk.login.bean;
+using com.m3839.sdk.login.listener;
+using ET;
+using UnityEngine;
+
+namespace GFGGame
+{
+    public class QDHYKBManager : SingletonBase<QDHYKBManager>
+    {
+
+        public void InitSDK()
+        {
+            // 游戏屏幕方向 (Game Screen Orientation)
+            int screenOrienation = HykbContext.SCREEN_PORTRAIT;
+            // 初始化回调监听(Init callback)
+            HykbLogin.SetUserListener(new HykbUserListenerProxy());
+            HykbLogin.SetAntiListener(new HykbAntiListenerProxy());
+            HykbInitListenerProxy proxy = new HykbInitListenerProxy();
+            HykbLogin.Init("25374", screenOrienation, proxy);
+        }
+
+        /// <summary>
+        /// 登录
+        /// </summary>
+        public void Login()
+        {
+            ViewManager.Show<ModalStatusView>("登录中...");
+            HykbUser user = HykbLogin.GetUser();
+            Log.Debug($"sdk manager Login {user == null}");
+            if (user != null)
+            {
+                EventAgent.DispatchEvent(ConstMessage.ON_PLATFORM_SDK_LOGINED, user.getUserId());
+            }
+            else
+            {
+                Log.Debug($"sdk Login");
+                HykbLogin.Login();
+            }
+        }
+
+        /// <summary>
+        /// 切换账号
+        /// </summary>
+        public void DoSwitchAccount()
+        {
+            HykbLogin.SwitchAccount();
+        }
+
+        /// <summary>
+        /// 获取用户信息
+        /// </summary>
+        public void GetUser()
+        {
+            // 获取当前用户信息(Get current User information)
+            HykbUser user = HykbLogin.GetUser();
+            if (user != null)
+            {
+                //ShowText.text = user.toString();
+            }
+
+        }
+
+        /// <summary>
+        /// 登出
+        /// </summary>
+        public void OnQuitToLoginView()
+        {
+            // 登出 (Logout)
+            HykbLogin.Logout();
+            
+        }
+
+    }
+
+
+    class HykbInitListenerProxy : HykbV2InitListener
+    {
+        public HykbInitListenerProxy()
+        {
+            
+        }
+
+        public override void OnSucceed()
+        {
+            Log.Debug("HykbInitListenerProxy OnSucceed");
+            EventAgent.DispatchEvent(ConstMessage.ON_PLATFORM_SDK_INITED, true);
+        }
+
+        public override void OnFailed(int code, string message)
+        {
+            Log.Debug("HykbInitListenerProxy OnFailed" + message);
+            EventAgent.DispatchEvent(ConstMessage.ON_PLATFORM_SDK_INITED, false);
+        }
+    }
+
+    /// <summary>
+    /// 用户信息相关的监听(登录和切换账号)
+    /// </summary>
+    class HykbUserListenerProxy : HykbUserListener
+    {
+
+        public HykbUserListenerProxy()
+        {
+            
+        }
+
+        public override void OnLoginFailed(int code, string message)
+        {
+            //instance.ShowText.text = "code:" + code + " -message:" + message;
+            Log.Debug($"OnLoginFailed code: " + code + " - message:" + message);
+            //PromptController.Instance.ShowFloatTextPrompt(message);
+            EventAgent.DispatchEvent(ConstMessage.ON_PLATFORM_SDK_LOGINED, null);
+        }
+
+        public override void OnLoginSucceed(HykbUser user)
+        {
+            //instance.ShowText.text = "" + user.getNick();
+
+            Log.Debug("OnLoginSucceed");
+            EventAgent.DispatchEvent(ConstMessage.ON_PLATFORM_SDK_LOGINED, user.getUserId());
+        }
+
+        public override void OnSwitchUser(HykbUser user)
+        {
+            Log.Debug("OnSwitchUser");
+            //instance.ShowText.text = "" + user.getNick();
+        }
+    }
+
+    class HykbAntiListenerProxy : HykbAntiListener
+    {
+        public override void OnAnti(int code, string message)
+        {
+            Log.Debug($"OnAnti code {code} message {message}");
+            if(code == 100)
+            {
+                
+            }
+            else
+            {
+                HykbLogin.Logout();
+            }
+        }
+    }
+
+}

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Platform/PlatformManager.cs.meta → GameClient/Assets/Game/HotUpdate/Platform/QDHYKBManager.cs.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: fbe0e78eab964c444a536a2c949ec684
+guid: 7dd86f82c164f7a40993ec47aa21815b
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2

+ 74 - 0
GameClient/Assets/Game/HotUpdate/Platform/QDManager.cs

@@ -0,0 +1,74 @@
+using System;
+using ET;
+
+namespace GFGGame
+{
+    
+    public class QDManager
+    {
+        public static Action<bool> InitResultCallback;
+
+        public static void InitPlatform()
+        {
+            ViewManager.Show<ModalStatusView>("正在初始化...");
+            switch (LauncherConfig.ChannelId)
+            {
+                case ChannelID.TapTap:
+                    QDTapTapManager.Instance.InitSDK();
+                    break;
+                case ChannelID.HYKB:
+                    QDHYKBManager.Instance.InitSDK();
+                    break;
+                case ChannelID.BiliBili:
+
+                    break;
+                default:
+                    EventAgent.DispatchEvent(ConstMessage.ON_PLATFORM_SDK_INITED, true);
+                    break;
+            }
+        }
+
+        public static void OnQuitToLoginView()
+        {
+            switch (LauncherConfig.ChannelId)
+            {
+                case ChannelID.TapTap:
+                    QDTapTapManager.Instance.OnQuitToLoginView();
+                    break;
+                case ChannelID.HYKB:
+                    QDHYKBManager.Instance.OnQuitToLoginView();
+                    break;
+                case ChannelID.BiliBili:
+
+                    break;
+                default:
+                    
+                    break;
+            }
+        }
+
+        public static bool IsTaptap
+        {
+            get
+            {
+                return LauncherConfig.ChannelId == ChannelID.TapTap;
+            }
+        }
+
+        public static bool IsHYKB
+        {
+            get
+            {
+                return LauncherConfig.ChannelId == ChannelID.HYKB;
+            }
+        }
+
+        public static bool IsBiliBili
+        {
+            get
+            {
+                return LauncherConfig.ChannelId == ChannelID.BiliBili;
+            }
+        }
+    }
+}

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Platform/PlatformTapManager.cs.meta → GameClient/Assets/Game/HotUpdate/Platform/QDManager.cs.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 20b04a6e09277ab48880123e8862a4ed
+guid: c4d8555f5ba9acf429cb3c82fa59470c
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2

+ 12 - 23
GameClient/Assets/Game/HotUpdate/Platform/PlatformTapManager.cs → GameClient/Assets/Game/HotUpdate/Platform/QDTapTapManager.cs

@@ -4,17 +4,17 @@ using TapTap.Common;
 using TapTap.TapDB;
 using Plugins.AntiAddictionUIKit;
 using System;
-using UnityEngine;
+using System.Threading.Tasks;
 
 namespace GFGGame
 {
-    public class PlatformTapManager : SingletonBase<PlatformTapManager>
+    public class QDTapTapManager : SingletonBase<QDTapTapManager>
     {
         private readonly string ClientID = "K7bDyPGYlVx2AAtk6q";
         public void InitSDK()
         {
             Log.Debug($"tap InitSDK");
-            if (!PlatformManager.IsTaptap)
+            if (!QDManager.IsTaptap)
             {
                 return;
             }
@@ -26,12 +26,13 @@ namespace GFGGame
                 .TapDBConfig(true, "tap", null, true)
                 .ConfigBuilder();
             TapBootstrap.Init(config);
+            EventAgent.DispatchEvent(ConstMessage.ON_PLATFORM_SDK_INITED, true);
         }
 
-        public async ETTask<bool> LoginCache()
+        public async Task<bool> Login()
         {
-            Log.Debug($"tap LoginCache");
-            if (!PlatformManager.IsTaptap)
+            Log.Debug($"tap login");
+            if (!QDManager.IsTaptap)
             {
                 return false;
             }
@@ -42,21 +43,9 @@ namespace GFGGame
                 InitAntiAddiction(tdsUser.ObjectId);
                 return true;
             }
-            ViewManager.Hide<ModalStatusView>();
-            return false;
-        }
-
-        public async ETTask<bool> Login()
-        {
-            Log.Debug($"tap login");
-            if (!PlatformManager.IsTaptap)
-            {
-                return false;
-            }
-            ViewManager.Show<ModalStatusView>("登录中...");
             try
             {
-                var tdsUser = await TDSUser.LoginWithTapTap();
+                tdsUser = await TDSUser.LoginWithTapTap();
                 Log.Debug($"tap login Success:{tdsUser}");
                 InitAntiAddiction(tdsUser.ObjectId);
                 return true;
@@ -108,7 +97,7 @@ namespace GFGGame
                         ET.Log.Debug("玩家登录后判断当前玩家可以进行游戏");
                         // 开始计时
                         AntiAddictionUIKit.EnterGame();
-                        LoginController.LoginTest(objectId).Coroutine();
+                        EventAgent.DispatchEvent(ConstMessage.ON_PLATFORM_SDK_LOGINED, objectId);
                     }
                     else if(code == 1030)
                     {
@@ -146,7 +135,7 @@ namespace GFGGame
         public void OnEnterGame()
         {
             Log.Debug($"tap OnEnterGame");
-            if (!PlatformManager.IsTaptap)
+            if (!QDManager.IsTaptap)
             {
                 return;
             }
@@ -161,10 +150,10 @@ namespace GFGGame
             Log.Debug($"tap TapDB \nSetUser {accountInfoComponent.Account} \nSetName {currentRole.Name} \nSetLevel {RoleDataManager.lvl} \nSetServer {serverInfosComponent.GetCurrentServerInfo().ServerName}");
         }
 
-        public void OnQuitGame()
+        public void OnQuitToLoginView()
         {
             Log.Debug($"tap OnQuitGame");
-            if (!PlatformManager.IsTaptap)
+            if (!QDManager.IsTaptap)
             {
                 return;
             }

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Platform/QDTapTapManager.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: dacaeb85b5a644f488c91b69ef7b69f2
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 70 - 41
GameClient/Assets/Game/HotUpdate/Views/Login/LoginView.cs

@@ -5,6 +5,7 @@ using ET;
 using TapTap.Bootstrap;
 using System;
 using TapTap.Common;
+using System.Threading.Tasks;
 
 namespace GFGGame
 {
@@ -49,7 +50,7 @@ namespace GFGGame
             _ui.m_btnStart.onClick.Add(OnClickBtnStart);
             _ui.m_btnLogout.onClick.Add(OnClickBtnLogout);
             _ui.m_btnAge.onClick.Add(OnClickBtnAge);
-            _ui.m_btnTapLogin.onClick.Add(OnClickBtnTabLogin);
+            _ui.m_btnTapLogin.onClick.Add(OnClickBtnStart);
 
             _ui.m_imgLogo.visible = LauncherConfig.netType != LauncherConfig.EnumNetType.TEMP;
 
@@ -62,6 +63,8 @@ namespace GFGGame
             base.AddEventListener();
             EventAgent.AddEventListener(ConstMessage.SERVER_CHANGE, OnSeverChangeListener);
             EventAgent.AddEventListener(ConstMessage.LOGIN_SUCCESS, OnLoginSuccess);
+            EventAgent.AddEventListener(ConstMessage.ON_PLATFORM_SDK_INITED, OnPlatformInitet);
+            EventAgent.AddEventListener(ConstMessage.ON_PLATFORM_SDK_LOGINED, OnPlatformLogined);
         }
         protected override void OnShown()
         {
@@ -78,8 +81,9 @@ namespace GFGGame
             _ui.m_btnStart.visible = false;
             _ui.m_btnTapLogin.visible = false;
             _ui.m_btnLogout.visible = false;
-            InitLoginStatus(serverInfosComponent).Coroutine();
 
+            //初始化平台配置
+            QDManager.InitPlatform();
         }
 
         protected override void OnHide()
@@ -97,34 +101,8 @@ namespace GFGGame
             base.RemoveEventListener();
             EventAgent.RemoveEventListener(ConstMessage.SERVER_CHANGE, OnSeverChangeListener);
             EventAgent.RemoveEventListener(ConstMessage.LOGIN_SUCCESS, OnLoginSuccess);
-        }
-        private async ETTask InitLoginStatus(ServerInfosComponent serverInfosComponent)
-        {
-            if (PlatformManager.IsTaptap)//taptap平台
-            {
-                var success = await PlatformTapManager.Instance.LoginCache();
-                _ui.m_btnTapLogin.visible = !success;
-            }
-            else//自有登录
-            {
-                _ui.m_btnStart.visible = true;
-                //尝试自动登录
-                if (serverInfosComponent.ServerInfoList.Count <= 0)
-                {
-                    OnClickBtnStart();
-                }
-            }
-        }
-
-        private void OnClickBtnTabLogin()
-        {
-            OnClickBtnTabLoginAsync().Coroutine();
-        }
-
-        private async ETTask OnClickBtnTabLoginAsync()
-        {
-            var success = await PlatformTapManager.Instance.Login();
-            _ui.m_btnTapLogin.visible = !success;
+            EventAgent.RemoveEventListener(ConstMessage.ON_PLATFORM_SDK_INITED, OnPlatformInitet);
+            EventAgent.RemoveEventListener(ConstMessage.ON_PLATFORM_SDK_LOGINED, OnPlatformLogined);
         }
 
         private void UpdateServer(ServerInfo info)
@@ -141,6 +119,47 @@ namespace GFGGame
             LogServerHelperHttp.SendNodeLog((int)LogNode.ShowSelectServer);
         }
 
+        private void OnPlatformInitet(EventContext context)
+        {
+            var success = (bool)context.data;
+            Debug.Log($"InitPlatform success {success}");
+            if (success)
+            {
+                _ui.m_btnStart.visible = !QDManager.IsTaptap;
+                //尝试自动登录
+                OnClickBtnStart();
+            }
+            else
+            {
+                ViewManager.Hide<ModalStatusView>();
+                AlertSystem.Show("初始化平台sdk失败!")
+                .SetRightButton(true, "重试", (t) => { QDManager.InitPlatform(); });
+            }
+            
+        }
+
+        private void OnPlatformLogined(EventContext context)
+        {
+            var account = (string)context.data;
+            if(!string.IsNullOrEmpty(account))
+            {
+                if(QDManager.IsHYKB)
+                {
+                    Timers.inst.Add(1, 1, (a) => { LoginController.LoginTest(account).Coroutine(); });
+                }
+                else
+                {
+                    LoginController.LoginTest(account).Coroutine();
+                }
+            }
+            else
+            {
+                ViewManager.Hide<ModalStatusView>();
+                AlertSystem.Show("sdk登录失败!")
+                .SetRightButton(true, "重试", (t) => { QDHYKBManager.Instance.Login(); });
+            }
+        }
+
         private void OnLoginSuccess(EventContext context)
         {
             _ui.m_btnLogout.visible = true;
@@ -169,14 +188,18 @@ namespace GFGGame
 
         private void OnClickBtnStart()
         {
-            if (PlatformManager.IsTaptap)//taptap平台
+            var serverInfosComponent = GameGlobal.zoneScene.GetComponent<ServerInfosComponent>();
+            if (serverInfosComponent.ServerInfoList.Count <= 0)
             {
-                LoginController.GetRoles().Coroutine();
-            }
-            else
-            {
-                var serverInfosComponent = GameGlobal.zoneScene.GetComponent<ServerInfosComponent>();
-                if (serverInfosComponent.ServerInfoList.Count <= 0)
+                if (QDManager.IsTaptap)
+                {
+                    OnClickBtnTabLoginAsync().Wait();
+                }
+                else if (QDManager.IsHYKB)
+                {
+                    QDHYKBManager.Instance.Login();
+                }
+                else
                 {
                     bool login = GameController.CheckLoginCache(true);
                     if (!login)
@@ -184,11 +207,17 @@ namespace GFGGame
                         ViewManager.Show<LoginInputView>();
                     }
                 }
-                else
-                {
-                    LoginController.GetRoles().Coroutine();
-                }
             }
+            else
+            {
+                LoginController.GetRoles().Coroutine();
+            }
+        }
+
+        private async Task OnClickBtnTabLoginAsync()
+        {
+            var success = await QDTapTapManager.Instance.Login();
+            _ui.m_btnTapLogin.visible = !success;
         }
 
         private void OnClickBtnLogout()

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 96c5999ddb7651c458d76556294b219b
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/m3839.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: df32bbf0114bf3e4a8426915ccb48fd9
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: dc7aedffb6194ca45b02e01696e985fd
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b3e1d6a4e38302a40abeb864cb05f98b
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 58 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/HykbGameArchives.cs

@@ -0,0 +1,58 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using com.m3839.sdk.archives.bean;
+using com.m3839.sdk.archives.listener;
+
+/// <summary>
+/// 云存档sdk的 API
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.archives
+{
+
+    public class HykbGameArchives
+    {
+        static AndroidJavaClass gameArchives = new AndroidJavaClass("com.m3839.sdk.archives.HykbGameArchives");
+
+        [System.Obsolete("该方法已过时")]
+        public static void SaveArchivesData(GameArchivesDataBean bean, HykbSaveArchivesListener listener)
+        {
+            gameArchives.CallStatic("saveArchivesData", HykbContext.GetInstance().GetActivity(), GameArchivesDataBean.ToA(bean), listener);
+        }
+
+        [System.Obsolete("该方法已过时")]
+        public static void ReadArchivesData(GameArchivesDataBean bean, HykbReadArchivesListener listener)
+        {
+            gameArchives.CallStatic("readArchivesData", HykbContext.GetInstance().GetActivity(), GameArchivesDataBean.ToA(bean), listener);
+        }
+
+        [System.Obsolete("该方法已过时")]
+        public static void LoadAllArchivesData(GameArchivesDataBean bean, HykbLoadArchivesListener listener)
+        {
+            gameArchives.CallStatic("loadAllArchivesData", HykbContext.GetInstance().GetActivity(), GameArchivesDataBean.ToA(bean), listener);
+        }
+
+
+        public static void Init(string gameId)
+        {
+            gameArchives.CallStatic("init", HykbContext.GetInstance().GetActivity(), gameId);
+        }
+
+        public static void SaveArchivesDataV2(GameArchivesDataBean bean, HykbSaveArchivesListener listener)
+        {
+            gameArchives.CallStatic("saveArchivesData", GameArchivesDataBean.ToA(bean), listener);
+        }
+
+        public static void ReadArchivesDataV2(GameArchivesDataBean bean, HykbReadArchivesListener listener)
+        {
+            gameArchives.CallStatic("readArchivesData", GameArchivesDataBean.ToA(bean), listener);
+        }
+
+        public static void LoadAllArchivesDataV2(GameArchivesDataBean bean, HykbLoadArchivesListener listener)
+        {
+            gameArchives.CallStatic("loadAllArchivesData", GameArchivesDataBean.ToA(bean), listener);
+        }
+    }
+
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/HykbGameArchives.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f018cd9dcb2e2be4d9451b6993ae3482
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/bean.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: bfb33923ee88640499e3a6d1c9af0c80
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 140 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/bean/GameArchivesDataBean.cs

@@ -0,0 +1,140 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 游戏档位数据
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.archives.bean
+{
+    public class GameArchivesDataBean 
+    {
+        /** 游戏ID */
+        private string gameId;
+
+        /** 用户ID */
+        private string userId;
+
+        /** 存档ID */
+        private int archivesId;
+
+        /** 存档标题*/
+        private string archivesTitle;
+
+        /** 存档内容*/
+        private string archivesContent;
+
+        /** 存档透传字段*/
+        private string archivesExt;
+
+        /** 存档的时间 */
+        private string updateTime;
+
+
+        public GameArchivesDataBean()
+        {
+
+        }
+
+        /// <summary>
+        /// 游戏档位数据
+        /// </summary>
+        public GameArchivesDataBean(AndroidJavaObject bean)
+        {
+            this.gameId = bean.Call<string>("getGameId");
+            this.userId = bean.Call<string>("getUserId");
+            this.archivesId = bean.Call<int>("getArchivesId");
+            this.archivesTitle = bean.Call<string>("getGiftLinkTitle");
+            this.archivesContent = bean.Call<string>("getArchivesContent");
+            this.archivesExt = bean.Call<string>("getArchivesExt");
+            this.updateTime = bean.Call<string>("getUpdateTime");
+        }
+
+        [System.Obsolete("该方法已过时")]
+        public string getGameId()
+        {
+            return gameId;
+        }
+
+        [System.Obsolete("该方法已过时")]
+        public void setGameId(string gameId)
+        {
+            this.gameId = gameId;
+        }
+
+        public string getUserId()
+        {
+            return userId;
+        }
+
+        public void setUserId(string userId)
+        {
+            this.userId = userId;
+        }
+
+        public int getArchivesId()
+        {
+            return archivesId;
+        }
+
+        public void setArchivesId(int archivesId)
+        {
+            this.archivesId = archivesId;
+        }
+
+        public string getArchivesTitle()
+        {
+            return archivesTitle;
+        }
+
+        public void setArchivesTitle(string archivesTitle)
+        {
+            this.archivesTitle = archivesTitle;
+        }
+
+        public string getArchivesContent()
+        {
+            return archivesContent;
+        }
+
+        public void setArchivesContent(string archivesContent)
+        {
+            this.archivesContent = archivesContent;
+        }
+
+        public string getArchivesExt()
+        {
+            return archivesExt;
+        }
+
+        public void setArchivesExt(string archivesExt)
+        {
+            this.archivesExt = archivesExt;
+        }
+
+        public string getUpdateTime()
+        {
+            return updateTime;
+        }
+
+        public void setUpdateTime(string updateTime)
+        {
+            this.updateTime = updateTime;
+        }
+
+        public static AndroidJavaObject ToA(GameArchivesDataBean bean)
+        {
+            AndroidJavaObject payInfo = new AndroidJavaObject("com.m3839.sdk.archives.bean.GameArchivesDataBean");
+            payInfo.Call("setGameId", bean.getGameId());
+            payInfo.Call("setUserId", bean.getUserId());
+            payInfo.Call("setArchivesId", bean.getArchivesId());
+            payInfo.Call("setArchivesTitle", bean.getArchivesTitle());
+            payInfo.Call("setArchivesContent", bean.getArchivesContent());
+            payInfo.Call("setArchivesExt", bean.getArchivesExt());
+            payInfo.Call("setUpdateTime", bean.getUpdateTime());
+            return payInfo;
+        }
+    }
+}
+

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/bean/GameArchivesDataBean.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: fd045657ace369e4593c614295135f00
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/listener.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 29c84a0b5c993d841ac94b3485cf91fd
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 53 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/listener/HykbLoadArchivesListener.cs

@@ -0,0 +1,53 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+
+/// <summary>
+/// 获取存档列表的数据监听接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.archives.listener
+{
+
+    public abstract class HykbLoadArchivesListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// 云存档列表数据校验回调接口
+        /// </summary>
+        public HykbLoadArchivesListener() : base("com.m3839.sdk.archives.listener.HykbLoadArchivesListener") { }
+
+        /// <summary>
+        /// 成功回调
+        /// </summary>
+        /// <param name="dataBean">存档数据</param>
+        public void onSuccess(List<AndroidJavaObject> dataBean)
+        {
+            OnSuccess(dataBean);
+        }
+
+        /// <summary>
+        /// 失败回调
+        /// </summary>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">失败的返回的信息</param>
+        public void onFailed(int code, string message)
+        {
+            OnFailed(code, message);
+        }
+
+        /// <summary>
+        /// 成功回调
+        /// </summary>
+        /// <param name="dataBean">存档数据</param>
+        public abstract void OnSuccess(List<AndroidJavaObject> dataBean);
+
+        /// <summary>
+        /// 失败回调
+        /// </summary>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">失败的返回的信息</param>
+        public abstract void OnFailed(int code, string message);
+    }
+}
+

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/listener/HykbLoadArchivesListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 9a5f65c689352e64aa4e4e610dc72c0b
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 50 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/listener/HykbReadArchivesListener.cs

@@ -0,0 +1,50 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 读档的数据监听接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.archives.listener
+{
+    public abstract class HykbReadArchivesListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// 云存档列表数据校验回调接口
+        /// </summary>
+        public HykbReadArchivesListener() : base("com.m3839.sdk.archives.listener.HykbReadArchivesListener") { }
+
+        /// <summary>
+        /// 成功回调
+        /// </summary>
+        /// <param name="dataBean">存档数据</param>
+        public void onSuccess(AndroidJavaObject dataBean)
+        {
+            OnSuccess(dataBean);
+        }
+
+        /// <summary>
+        /// 失败回调
+        /// </summary>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">失败的返回的信息</param>
+        public void onFailed(int code, string message)
+        {
+            OnFailed(code, message);
+        }
+
+        /// <summary>
+        /// 成功回调
+        /// </summary>
+        /// <param name="dataBean">存档数据</param>
+        public abstract void OnSuccess(AndroidJavaObject dataBean);
+
+        /// <summary>
+        /// 失败回调
+        /// </summary>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">失败的返回的信息</param>
+        public abstract void OnFailed(int code, string message);
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/listener/HykbReadArchivesListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 57d292280dda9364e8ff88fa1b950dbf
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 48 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/listener/HykbSaveArchivesListener.cs

@@ -0,0 +1,48 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 存档的数据监听接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.archives.listener
+{
+    public abstract class HykbSaveArchivesListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// 云存档列表数据校验回调接口
+        /// </summary>
+        public HykbSaveArchivesListener() : base("com.m3839.sdk.archives.listener.HykbSaveArchivesListener") { }
+
+        /// <summary>
+        /// 成功回调
+        /// </summary>
+        public void onSuccess()
+        {
+            OnSuccess();
+        }
+
+        /// <summary>
+        /// 失败回调
+        /// </summary>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">失败的返回的信息</param>
+        public void onFailed(int code, string message)
+        {
+            OnFailed(code, message);
+        }
+
+        /// <summary>
+        /// 成功回调
+        /// </summary>
+        public abstract void OnSuccess();
+
+        /// <summary>
+        /// 失败回调
+        /// </summary>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">失败的返回的信息</param>
+        public abstract void OnFailed(int code, string message);
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/archives/listener/HykbSaveArchivesListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 45ff47e81481c964e9054931e5785781
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 48951a5fd300631449c47ee382065e30
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 168 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/HykbAuxsSDK.cs

@@ -0,0 +1,168 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using com.m3839.sdk.auxs.bean;
+
+/// <summary>
+/// 强更sdk的 API
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.auxs
+{
+    public class HykbAuxsSDK
+    {
+        static AndroidJavaClass sdkClass = new AndroidJavaClass("com.m3839.sdk.auxs.HykbAuxSDK");
+
+        /// <summary>
+        /// SDK初始化
+        /// </summary>
+        /// <param name="gameId">快爆游戏ID</param>
+        /// <param name="orientation">屏幕方向</param>
+        /// <param name="listener">回调监听</param>
+        [System.Obsolete("该方法已过时")]
+        public static void initSdk(string gameId, int orientation, listener.HykbAuxInitListener listener)
+        {
+            sdkClass.CallStatic("init", HykbContext.GetInstance().GetActivity(), gameId, orientation, listener);
+        }
+
+        /// <summary>
+        /// SDK初始化
+        /// </summary>
+        /// <param name="gameId">快爆游戏ID</param>
+        /// <param name="orientation">屏幕方向</param>
+        /// <param name="listener">回调监听</param>
+        public static void Init(string gameId, int orientation, listener.HykbV2AuxInitListener listener)
+        {
+            sdkClass.CallStatic("init", HykbContext.GetInstance().GetActivity(), gameId, orientation, listener);
+        }
+
+        /// <summary>
+        /// 礼包码(自带UI界面)
+        /// </summary>
+        /// <param name="device">唯一标识符</param>
+        /// <param name="listener">校验礼包码的回调</param>
+        [System.Obsolete("该方法已过时")]
+        public static void checkGiftCode(string device, listener.HykbAuxGiftListener listener)
+        {
+            sdkClass.CallStatic("checkGiftCode", device, listener);
+        }
+
+        /// <summary>
+        /// 礼包码(自带UI界面)
+        /// </summary>
+        /// <param name="device">唯一标识符</param>
+        /// <param name="listener">校验礼包码的回调</param>
+        public static void CheckGiftCode(string device, listener.HykbV2AuxGiftListener listener)
+        {
+            sdkClass.CallStatic("checkGiftCode", device, listener);
+        }
+
+        /// <summary>
+        /// 礼包码(不带UI界面,该接口给开发自定义UI界面使用)
+        /// </summary>
+        /// <param name="device">唯一标识符</param>
+        /// <param name="code">礼包码</param>
+        /// <param name="listener">校验礼包码的回调</param>
+        [System.Obsolete("该方法已过时")]
+        public static void checkGiftCode(string device, string code, listener.HykbAuxGiftListener listener)
+        {
+            sdkClass.CallStatic("checkGiftCode", device, code, listener);
+        }
+
+        /// <summary>
+        /// 礼包码(不带UI界面,该接口给开发自定义UI界面使用)
+        /// </summary>
+        /// <param name="device">唯一标识符</param>
+        /// <param name="code">礼包码</param>
+        /// <param name="listener">校验礼包码的回调</param>
+        public static void CheckGiftCode(string device, string code, listener.HykbV2AuxGiftListener listener)
+        {
+            sdkClass.CallStatic("checkGiftCode", device, code, listener);
+        }
+
+
+        /// <summary>
+        /// 激活码(自带UI界面)
+        /// </summary>
+        /// <param name="device">唯一标识符</param>
+        /// <param name="listener">校验激活码的回调</param>
+        [System.Obsolete("该方法已过时")]
+        public static void checkActivationCode(string device, listener.HykbAuxActivationListener listener)
+        {
+            sdkClass.CallStatic("checkActivationCode", device, listener);
+        }
+
+        /// <summary>
+        /// 激活码(自带UI界面)
+        /// </summary>
+        /// <param name="device">唯一标识符</param>
+        /// <param name="listener">校验激活码的回调</param>
+        public static void CheckActivationCode(string device, listener.HykbV2AuxActivationListener listener)
+        {
+            sdkClass.CallStatic("checkActivationCode", device, listener);
+        }
+
+        /// <summary>
+        /// 激活码(不带UI界面,该接口给开发自定义UI界面使用)
+        /// </summary>
+        /// <param name="device">唯一标识符</param>
+        /// <param name="code">激活码</param>
+        /// <param name="listener">校验激活码的回调</param>
+        [System.Obsolete("该方法已过时")]
+        public static void checkActivationCode(string device, string code, listener.HykbAuxActivationListener listener)
+        {
+            sdkClass.CallStatic("checkActivationCode", device, code, listener);
+        }
+
+        /// <summary>
+        /// 激活码(不带UI界面,该接口给开发自定义UI界面使用)
+        /// </summary>
+        /// <param name="device">唯一标识符</param>
+        /// <param name="code">激活码</param>
+        /// <param name="listener">校验激活码的回调</param>
+        public static void CheckActivationCode(string device, string code, listener.HykbV2AuxActivationListener listener)
+        {
+            sdkClass.CallStatic("checkActivationCode", device, code, listener);
+        }
+
+
+        /// <summary>
+        /// 激活码的UI文案数据信息
+        /// </summary>
+        /// <returns>返回激活码的UI文案数据实例</returns>
+        public static HykbActivationUiInfo getActivationUiInfo()
+        {
+            AndroidJavaObject activationObject = sdkClass.CallStatic<AndroidJavaObject>("getActivationUiInfo");
+            return activationObject == null ? null : new HykbActivationUiInfo(activationObject);
+        }
+
+        /// <summary>
+        /// 礼包码的UI文案数据信息
+        /// </summary>
+        /// <returns>返回礼包码码的UI文案数据实例</returns>
+        public static HykbGiftUiInfo getGiftUiInfo()
+        {
+            AndroidJavaObject activationObject = sdkClass.CallStatic<AndroidJavaObject>("getGiftUiInfo");
+            return activationObject == null ? null : new HykbGiftUiInfo(activationObject);
+        }
+
+        /// <summary>
+        /// 检测该设备id是否激活过
+        /// </summary>
+        /// <param name="device">唯一标识符</param>
+        /// <param name="listener">校验激活码是否激活的回调</param>
+        public static void getActivationStatusByDevice(string device, listener.HykbAuxActivationCheckListener listener)
+        {
+            sdkClass.CallStatic("getActivationStatusByDevice", device, listener);
+        }
+
+        /// <summary>
+        /// 页面跳转
+        /// </summary>
+        /// <param name="biz">业务id</param>
+        public static void openPageDetail(int biz)
+        {
+            sdkClass.CallStatic("openPageDetail",biz);
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/HykbAuxsSDK.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 916bcd55627c86f42986eef75e0f2fb0
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/bean.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: dca46a9d75139194e95e25bc423763c4
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 77 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/bean/HykbActivationUiInfo.cs

@@ -0,0 +1,77 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+
+/// <summary>
+/// 激活码UI的数据信息实体类
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.auxs.bean
+{
+    public class HykbActivationUiInfo
+    {
+        private string activationTitle;
+        private string activationLink;
+        private string activationKbLink;
+        private string activationLinkTitle;
+        private int activationLinkStatus;
+        /// <summary>
+        /// 激活码UI显示数据
+        /// </summary>
+        public HykbActivationUiInfo(AndroidJavaObject user)
+        {
+            this.activationTitle = user.Call<string>("getActivationTitle");
+            this.activationLink = user.Call<string>("getActivationLink");
+            this.activationKbLink = user.Call<string>("getActivationKbLink");
+            this.activationLinkTitle = user.Call<string>("getActivationLinkTitle");
+            this.activationLinkStatus = user.Call<int>("getActivationLinkStatus");
+        }
+
+        /// <summary>
+        /// 获得激活码UI标题
+        /// </summary>
+        /// <returns>获取礼包UI标题</returns>
+        public string getActivationTitle()
+        {
+            return activationTitle;
+        }
+
+        /// <summary>
+        /// 获得激活码弹窗链接
+        /// </summary>
+        /// <returns>激活码弹窗的链接</returns>
+        public string getActivationLink()
+        {
+            return activationLink;
+        }
+
+        /// <summary>
+        /// 获得激活码弹窗快爆app链接
+        /// </summary>
+        /// <returns>激活码弹窗快爆app链接</returns>
+        public string getActivationKbLink()
+        {
+            return activationKbLink;
+        }
+
+        /// <summary>
+        /// 获得激活码弹窗快爆链接
+        /// </summary>
+        /// <returns>激活码弹窗的链接文案</returns>
+        public string getActivationLinkTitle()
+        {
+            return activationLinkTitle;
+        }
+
+
+        /// <summary>
+        /// 链接地址状态:1、显示;0、关闭
+        /// </summary>
+        /// <returns>链接地址状态</returns>
+        public int getActivationLinkStatus()
+        {
+            return activationLinkStatus;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/bean/HykbActivationUiInfo.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 624ea5183fef3ff4ba01db414de52742
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 79 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/bean/HykbGiftUiInfo.cs

@@ -0,0 +1,79 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 礼包UI的数据信息实体类
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.auxs.bean
+{
+    public class HykbGiftUiInfo
+    {
+        private string giftTitle;
+        private string giftLink;
+        private string giftKbLink;
+        private string giftLinkTitle;
+        private int giftLinkStatus;
+
+        /// <summary>
+        /// 礼包码UI显示数据
+        /// </summary>
+        public HykbGiftUiInfo(AndroidJavaObject user)
+        {
+            this.giftTitle = user.Call<string>("getGiftTitle");
+            this.giftLink = user.Call<string>("getGiftLink");
+            this.giftKbLink = user.Call<string>("getGiftKbLink");
+            this.giftLinkTitle = user.Call<string>("getGiftLinkTitle");
+            this.giftLinkStatus = user.Call<int>("getGiftLinkStatus");
+        }
+
+        /// <summary>
+        /// 礼包码UI标题
+        /// </summary>
+        /// <returns>用户编号字符串</returns>
+        public string getGiftTitle()
+        {
+            return giftTitle;
+        }
+
+        /// <summary>
+        /// 礼包码UI弹窗链接
+        /// </summary>
+        /// <returns>礼包码UI弹窗链接</returns>
+        public string getGiftLink()
+        {
+            return giftLink;
+        }
+
+        /// <summary>
+        /// 礼包码UI弹窗快爆app链接
+        /// </summary>
+        /// <returns>礼包码UI弹窗快爆app链接</returns>
+        public string getGiftKbLink()
+        {
+            return giftKbLink;
+        }
+
+        /// <summary>
+        /// 礼包码UI弹窗链接标题
+        /// </summary>
+        /// <returns>礼包码UI弹窗链接标题</returns>
+        public string getGiftLinkTitle()
+        {
+            return giftLinkTitle;
+        }
+
+        /// <summary>
+        /// 链接地址状态:1、显示;0、关闭
+        /// </summary>
+        /// <returns>链接地址状态</returns>
+        public int getGiftLinkStatus()
+        {
+            return giftLinkStatus;
+        }
+
+
+    }
+
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/bean/HykbGiftUiInfo.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6ce581c5713688742983783141504275
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f4c628af66a231d4392275521ef9fdcc
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 33 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbAuxActivationCheckListener.cs

@@ -0,0 +1,33 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 激活码状态检测回调监听接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.auxs.listener
+{
+    public abstract class HykbAuxActivationCheckListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// 激活码状态
+        /// </summary>
+        public HykbAuxActivationCheckListener() : base("com.m3839.sdk.auxs.listener.HykbAuxActivationCheckListener") { }
+
+        /// <summary>
+        /// 校验结果回调
+        /// </summary>
+        /// <param name="hasActivation">是否激活过</param>
+        public void onActivationCheck(bool hasActivation)
+        {
+            OnActivationCheck(hasActivation);
+        }
+
+        /// <summary>
+        /// 校验接口回调
+        /// </summary>
+        /// <param name="hasActivation">是否激活过</param>
+        public abstract void OnActivationCheck(bool hasActivation);
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbAuxActivationCheckListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 2f11859083f5843409ed419f6b5dbdd0
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 36 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbAuxActivationListener.cs

@@ -0,0 +1,36 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 激活码回调监听接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.auxs.listener
+{
+    [System.Obsolete("该接口已过时")]
+    public abstract class HykbAuxActivationListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// 激活码校验回调接口
+        /// </summary>
+        public HykbAuxActivationListener() : base("com.m3839.sdk.auxs.listener.HykbAuxActivationListener") { }
+
+        /// <summary>
+        /// 校验结果回调
+        /// </summary>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">激活码,校验通过之后,返回的信息</param>
+        public void onResult(int code, string message)
+        {
+            OnResult(code, message);
+        }
+
+        /// <summary>
+        /// 校验接口回调
+        /// </summary>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">激活码,校验通过之后,返回的信息</param>
+        public abstract void OnResult(int code, string message);
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbAuxActivationListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 792773838f2ffa544b957a911271bd3c
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 38 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbAuxGiftListener.cs

@@ -0,0 +1,38 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 礼包码回调监听接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.auxs.listener
+{
+    [System.Obsolete("该接口已过时")]
+    public abstract class HykbAuxGiftListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// 礼包码回调接口
+        /// </summary>
+        public HykbAuxGiftListener() : base("com.m3839.sdk.auxs.listener.HykbAuxGiftListener") { }
+
+        /// <summary>
+        /// 校验结果回调
+        /// </summary>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">礼包码,校验通过之后,返回的信息</param>
+        /// <param name="codeName">兑换成功,返回的礼包名称</param>
+        public void onResult(int code, string message, string codeName)
+        {
+            OnResult(code, message, codeName);
+        }
+
+        /// <summary>
+        /// 校验接口回调
+        /// </summary>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">礼包码,校验通过之后,返回的信息</param>
+        /// <param name="codeName">兑换成功,返回的礼包名称</param>
+        public abstract void OnResult(int code, string message, string codeName);
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbAuxGiftListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 735386047038cb4408c3775e70a5d20c
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 36 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbAuxInitListener.cs

@@ -0,0 +1,36 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 初始化回调监听接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.auxs.listener
+{
+    [System.Obsolete("该接口已过时")]
+    public abstract class HykbAuxInitListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// SDK进行初始化的回调监听
+        /// </summary>
+        public HykbAuxInitListener() : base("com.m3839.sdk.auxs.listener.HykbAuxInitListener") { }
+
+        /// <summary>
+        /// 登录操作结束
+        /// </summary>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">初始化结果,或者激活码的相关信息返回</param>
+        public void onInitFinish(int code, string message)
+        {
+            OnInitFinished(code, message);
+        }
+
+        /// <summary>
+        /// 登录操作结束
+        /// </summary>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">初始化结果,或者激活码的相关信息返回</param>
+        public abstract void OnInitFinished(int code, string message);
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbAuxInitListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6f29f207cc9cf5144a31e4ecd3fa6cdb
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 50 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbV2AuxActivationListener.cs

@@ -0,0 +1,50 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 激活码回调监听接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.auxs.listener
+{
+    public abstract class HykbV2AuxActivationListener : AndroidJavaProxy
+    {
+
+        /// <summary>
+        /// 激活码校验回调接口
+        /// </summary>
+        public HykbV2AuxActivationListener() : base("com.m3839.sdk.auxs.listener.HykbV2AuxActivationListener") { }
+
+        /// <summary>
+        /// 激活成功
+        /// </summary>
+        public void onSucceed()
+        {
+            OnSucceed();
+        }
+
+        /// <summary>
+        /// 激活失败
+        /// </summary>
+        /// <param name="code">返回码</param>
+        /// <param name="message"> 错误信息</param>
+        public void onFailed(int code, string message)
+        {
+            OnFailed(code, message);
+        }
+
+        /// <summary>
+        /// 激活成功
+        /// </summary>
+        public abstract void OnSucceed();
+
+        /// <summary>
+        /// 激活失败
+        /// </summary>
+        /// <param name="code">返回码</param>
+        /// <param name="message"> 错误信息</param>
+        public abstract void OnFailed(int code, string message);
+    }
+}
+

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbV2AuxActivationListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 93af1fd7d9a604749a4762901c111d6d
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 51 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbV2AuxGiftListener.cs

@@ -0,0 +1,51 @@
+using UnityEngine;
+using System.Collections;
+
+/// <summary>
+/// 礼包码回调监听接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.auxs.listener
+{
+    public abstract class HykbV2AuxGiftListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// 礼包码回调接口
+        /// </summary>
+        public HykbV2AuxGiftListener() : base("com.m3839.sdk.auxs.listener.HykbV2AuxGiftListener") { }
+
+        /// <summary>
+        /// 激活成功
+        /// </summary>
+        /// <param name="giftName">礼包名称</param>
+        public void onSucceed(string giftName)
+        {
+            OnSucceed(giftName);
+        }
+
+        /// <summary>
+        /// 激活失败
+        /// </summary>
+        /// <param name="code">返回码</param>
+        /// <param name="message"> 错误信息</param>
+        public void onFailed(int code, string message)
+        {
+            OnFailed(code, message);
+        }
+
+        /// <summary>
+        /// 激活成功
+        /// </summary>
+        /// <param name="giftName">礼包名称</param>
+        public abstract void OnSucceed(string giftName);
+
+        /// <summary>
+        /// 激活失败
+        /// </summary>
+        /// <param name="code">返回码</param>
+        /// <param name="message"> 错误信息</param>
+        public abstract void OnFailed(int code, string message);
+
+    }
+}
+

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbV2AuxGiftListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 8fbcef9b5137941b1826643b031eda09
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 50 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbV2AuxInitListener.cs

@@ -0,0 +1,50 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 初始化回调监听V2接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.auxs.listener
+{
+    public abstract class HykbV2AuxInitListener : AndroidJavaProxy
+    {
+
+        /// <summary>
+        /// SDK进行初始化的回调监听
+        /// </summary>
+        public HykbV2AuxInitListener() : base("com.m3839.sdk.auxs.listener.HykbV2AuxInitListener") { }
+
+        /// <summary>
+        /// 初始化流程结束
+        /// </summary>
+        public void onSucceed()
+        {
+            OnSucceed();
+        }
+
+        /// <summary>
+        ///初始化失败
+        /// </summary>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">初始化结果,或者激活码的相关信息返回</param>
+        public void onFailed(int code, string message)
+        {
+            OnFailed(code, message);
+        }
+
+        /// <summary>
+        /// 初始化流程结束
+        /// </summary>
+        public abstract void OnSucceed();
+
+        /// <summary>
+        ///初始化失败
+        /// </summary>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">初始化结果,或者激活码的相关信息返回</param>
+        public abstract void OnFailed(int code, string message);
+    }
+}
+

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/auxs/listener/HykbV2AuxInitListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: d3deb597f6a9b4a13a2465a9612a3603
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/common.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 32f48da7b676bd5448e502ad02e78ce1
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 64 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/common/HykbContext.cs

@@ -0,0 +1,64 @@
+using UnityEngine;
+
+/// <summary>
+/// For support android context
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk
+{
+    public sealed class HykbContext : MonoBehaviour
+    {
+        // 横屏
+        public static int SCREEN_LANDSCAPE = 0;
+        // 竖屏
+        public static int SCREEN_PORTRAIT = 1;
+
+        private AndroidJavaObject currentActivity;
+
+        private static readonly HykbContext _HykbContext = new HykbContext();
+
+       
+        /// <summary>
+        /// 获取当前实例 
+        /// </summary>
+        /// <returns></returns>
+        public static HykbContext GetInstance()
+        {
+            return _HykbContext;
+        }
+
+
+        /*
+         * 获取当前Activity       
+         */
+        public AndroidJavaObject GetActivity()
+        {
+            if (null == currentActivity)
+            {
+                currentActivity = new AndroidJavaClass("com.unity3d.player.UnityPlayer")
+                .GetStatic<AndroidJavaObject>("currentActivity");
+            }
+
+            return currentActivity;
+        }
+
+        /*
+         * 运行在主UI线程       
+         */
+        public void RunOnUIThread(AndroidJavaRunnable runnable)
+        {
+            GetActivity().Call("runOnUiThread", runnable);
+        }
+
+
+        /*
+         * 获取根节点的布局 
+         */
+        public AndroidJavaObject GetRootLayout()
+        {
+            AndroidJavaClass R = new AndroidJavaClass("android.R$id");
+            return currentActivity.Call<AndroidJavaObject>("findViewById", R.GetStatic<int>("content"));
+        }
+    }
+}
+

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/common/HykbContext.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: de2e78829392548c99bbd11a367fa04a
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ef9a328ba720c45a18300bad2b022896
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 124 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/HykbLogin.cs

@@ -0,0 +1,124 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 好游快爆SDK
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.login
+{
+    /// <summary>
+    /// 好游快爆SDK的静态方法包装,用于untiy与安卓SDK对接及交互。
+    /// </summary>
+    public class HykbLogin
+    {
+        
+        // 单例中间层对象,方便获取
+        private static AndroidJavaClass sLoginJavaClass;
+        public static AndroidJavaClass getLoginClass()
+        {
+            if (sLoginJavaClass == null)
+            {
+                sLoginJavaClass = new AndroidJavaClass("com.m3839.sdk.login.HykbLogin");
+            }
+            return sLoginJavaClass;
+        }
+
+        /// <summary>
+        /// SDK初始化
+        /// </summary>
+        /// <param name="appKey">快爆开发者后台申请的appKey</param>
+        /// <param name="listener">初始化的回调监听</param>
+        [System.Obsolete("该方法已过时")]
+        public static void InitSdk(string appKey, int orientation, listener.HykbInitListener listener)
+        {
+            getLoginClass().CallStatic("initSdk", HykbContext.GetInstance().GetActivity(), appKey, orientation, listener);
+        }
+
+        /// <summary>
+        /// SDK初始化
+        /// </summary>
+        /// <param name="appKey">快爆开发者后台申请的appKey</param>
+        /// <param name="listener">初始化的回调监听</param>
+        public static void Init(string appKey, int orientation, listener.HykbV2InitListener listener)
+        {
+            getLoginClass().CallStatic("init", HykbContext.GetInstance().GetActivity(), appKey, orientation, listener);
+        }
+
+        /// <summary>
+        /// 设置用户相关监听
+        /// </summary>
+        /// <param name="listener">用户相关的监听接口</param>
+        public static void SetUserListener(listener.HykbUserListener listener)
+        {
+            getLoginClass().CallStatic("setUserListener", listener);
+        }
+
+        /// <summary>
+        /// 设置防沉迷相关监听
+        /// </summary>
+        /// <param name="listener">防沉迷相关的监听接口</param>
+        public static void SetAntiListener(listener.HykbAntiListener listener)
+        {
+            getLoginClass().CallStatic("setAntiListener", listener);
+        }
+
+        /// <summary>
+        /// 登录
+        /// </summary>
+        /// <param name="listener">登录操作的回调监听</param>
+        [System.Obsolete("该方法已过时")]
+        public static void Login(listener.HykbLoginListener listener)
+        {
+            getLoginClass().CallStatic("login", HykbContext.GetInstance().GetActivity(), listener);
+        }
+
+        /// <summary>
+        /// 登录
+        /// </summary>
+        public static void Login()
+        {
+            getLoginClass().CallStatic("login", HykbContext.GetInstance().GetActivity());
+        }
+
+        /// <summary>
+        /// 切换账号
+        /// </summary>
+        /// <param name="listener">切换账号的回调监听</param>
+        [System.Obsolete("该方法已过时")]
+        public static void SwitchAccount(listener.HykbLoginListener listener)
+        {
+            getLoginClass().CallStatic("switchAccount", HykbContext.GetInstance().GetActivity(), listener);
+        }
+
+        /// <summary>
+        /// 切换账号
+        /// </summary>
+        public static void SwitchAccount()
+        {
+            getLoginClass().CallStatic("switchAccount", HykbContext.GetInstance().GetActivity());
+        }
+
+        /// <summary>
+        /// 获得当前用户信息
+        /// </summary>
+        /// <returns>有用户信息是返回用户信息HykbUser实例,无则返回null</returns>
+        public static bean.HykbUser GetUser()
+        {
+            AndroidJavaObject userObject = getLoginClass().CallStatic<AndroidJavaObject>("getUser");
+            return userObject == null ? null : new bean.HykbUser(userObject);
+        }
+
+        /// <summary>
+        /// 退出登录,注销用户的登录信息
+        /// </summary>
+        public static void Logout()
+        {
+            getLoginClass().CallStatic("logout", HykbContext.GetInstance().GetActivity());
+        }
+
+    }
+
+
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/HykbLogin.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 265a5fcbb139e4c77b08182faef5fb61
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/bean.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 14fc17167f51f4ebda13e6624cd4940c
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 73 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/bean/HykbUser.cs

@@ -0,0 +1,73 @@
+using UnityEngine;
+
+/// <summary>
+/// 快爆用户信息实体类
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.login.bean
+{
+    public class HykbUser
+    {
+        private string userId;
+        private string nick;
+        private string type;
+        private string accessToken;
+
+        /// <summary>
+        /// 用户信息包装
+        /// </summary>
+        public HykbUser(AndroidJavaObject user)
+        {
+            this.userId = user.Call<string>("getUserId");
+            this.nick = user.Call<string>("getNick");
+            this.type = user.Call<string>("getType");
+            this.accessToken = user.Call<string>("getAccessToken");
+        }
+
+        /// <summary>
+        /// 获得用户ID
+        /// </summary>
+        /// <returns>用户编号字符串</returns>
+        public string getUserId()
+        {
+            return userId;
+        }
+
+        /// <summary>
+        /// 获得昵称
+        /// </summary>
+        /// <returns>昵称字符串</returns>
+        public string getNick()
+        {
+            return nick;
+        }
+
+        /// <summary>
+        /// 获得登录类型
+        /// </summary>
+        /// <returns>类型字符串</returns>
+        public string getType()
+        {
+            return type;
+        }
+
+        /// <summary>
+        /// 用来校验登录授权过程真实性,accessToken有效期两小时
+        /// </summary>
+        /// <returns>类型字符串</returns>
+        public string getAccessToken()
+        {
+            return accessToken;
+        }
+
+        public string toString()
+        {
+            return "HykbUser{" +
+                    "userId='" + userId + '\'' +
+                    ", nick='" + nick + '\'' +
+                    ", type='" + type + '\'' +
+                    ", accessToken='" + accessToken + '\'' +
+                    '}';
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/bean/HykbUser.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e82d4ff270dc64acc9f0e34a37570e7b
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 48f1ef0513ba949db90d731627f0bac1
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 31 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbAntiListener.cs

@@ -0,0 +1,31 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 防沉迷相关回调监听V2接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.login.listener
+{
+    public abstract class HykbAntiListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// 防沉迷相关回回调监听
+        /// </summary>
+        public HykbAntiListener() : base("com.m3839.sdk.login.listener.HykbAntiListener") { }
+
+        /// <summary>
+        /// 防沉迷相关回回调
+        /// </summary>
+        /// <param name="code">响应code</param>
+        /// <param name="message">响应消息</param>
+        public void onAnti(int code, string message)
+        {
+            OnAnti(code, message);
+        }
+
+        public abstract void OnAnti(int code, string message);
+    }
+}
+

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbAntiListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 28c2dc2f56a444c6aaeee4a82f9c6ea3
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 82 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbInitListener.cs

@@ -0,0 +1,82 @@
+using UnityEngine;
+
+/// <summary>
+/// 初始化回调监听接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.login.listener
+{
+    [System.Obsolete("该接口已过时")]
+    public abstract class HykbInitListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// 初始化回调监听,继承自SDK源码,为避免untiy使用冲突,另外提供给untiy继承的为首字母大写形式的接口。
+        /// </summary>
+        public HykbInitListener() : base("com.m3839.sdk.login.listener.HykbInitListener") { }
+
+        /// <summary>
+        /// SDK初始化成功,并根据用户登录情况返回用户信息
+        /// </summary>
+        /// <param name="user">有用户信息就返回用户信息,无则返回null</param>
+        public void onInitSuccess(AndroidJavaObject user)
+        {
+            if (user == null)
+            {
+                OnInitSuccess(null);
+            }
+            else
+            {
+                OnInitSuccess(new bean.HykbUser(user));
+            }
+        }
+
+        /// <summary>
+        /// 初始化失败,并返回失败码及提示
+        /// </summary>
+        /// <param name="code">失败码</param>
+        /// <param name="message">提示</param>
+        public void onInitError(int code, string message)
+        {
+            OnInitError(code, message);
+        }
+
+        /// <summary>
+        /// 初始化后有用户信息,但已失效且让玩家重新登录或切换账号
+        /// </summary>
+        /// <param name="switchUser">是否重新登录或切换账号</param>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="user">有用户信息就返回用户信息,无则返回null</param>
+        public void onSwitchUser(bool switchUser, int code, AndroidJavaObject user)
+        {
+            if (user == null)
+            {
+                OnSwitchUser(switchUser, code, null);
+            }
+            else
+            {
+                OnSwitchUser(switchUser, code, new bean.HykbUser(user));
+            }
+        }
+
+        /// <summary>
+        /// SDK初始化成功,并根据用户登录情况返回用户信息
+        /// </summary>
+        /// <param name="user">有用户信息就返回用户信息,无则返回null</param>
+        public abstract void OnInitSuccess(bean.HykbUser user);
+
+        /// <summary>
+        /// 初始化失败,并返回失败码及提示
+        /// </summary>
+        /// <param name="code">失败码</param>
+        /// <param name="message">提示</param>
+        public abstract void OnInitError(int code, string message);
+
+        /// <summary>
+        /// 初始化后有用户信息,但已失效且让玩家重新登录或切换账号
+        /// </summary>
+        /// <param name="switchUser">是否重新登录或切换账号</param>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="user">有用户信息就返回用户信息,无则返回null</param>
+        public abstract void OnSwitchUser(bool switchUser, int code, bean.HykbUser user);
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbInitListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: c2901dea2269842d68fdb4d48ca9820b
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 46 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbLoginListener.cs

@@ -0,0 +1,46 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 登录回调监听接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.login.listener
+{
+    [System.Obsolete("该接口已过时")]
+    public abstract class HykbLoginListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// 登录或者切换账号回调监听,继承自SDK源码,为避免untiy使用冲突,另外提供给untiy继承的为首字母大写形式的接口。
+        /// </summary>
+        public HykbLoginListener() : base("com.m3839.sdk.login.listener.HykbLoginListener") { }
+
+        /// <summary>
+        /// 登录操作结束
+        /// </summary>
+        /// <param name="login">是否有登录</param>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="user">有用户信息就返回用户信息,无则返回null</param>
+        public void onLoginFinished(bool login, int code, AndroidJavaObject user)
+        {
+            if (user == null)
+            {
+                OnLoginFinished(login, code, null);
+            }
+            else
+            {
+                OnLoginFinished(login, code, new bean.HykbUser(user));
+            }
+        }
+
+
+        /// <summary>
+        /// 登录操作结束
+        /// </summary>
+        /// <param name="login">是否有登录</param>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="user">有用户信息就返回用户信息,无则返回null</param>
+        public abstract void OnLoginFinished(bool login, int code, bean.HykbUser user);
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbLoginListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: b9f46698884b04196a86b6f060d3e603
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 68 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbUserListener.cs

@@ -0,0 +1,68 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+
+/// <summary>
+/// 用户相关回调监听V2接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.login.listener
+{
+    public abstract class HykbUserListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// 用户相关回回调监听
+        /// </summary>
+        public HykbUserListener() : base("com.m3839.sdk.login.listener.HykbUserListener") { }
+
+        /// <summary>
+        /// 登录成功
+        /// </summary>
+        /// <param name="user">用户信息</param>
+        public void onLoginSucceed(AndroidJavaObject user)
+        {
+            OnLoginSucceed(new bean.HykbUser(user));
+        }
+
+        /// <summary>
+        /// 登录失败
+        /// </summary>
+        /// <param name="code">返回code</param>
+        /// <param name="message">失败原因</param>
+        public void onLoginFailed(int code, string message)
+        {
+            OnLoginFailed(code, message);
+        }
+
+        /// <summary>
+        /// 切换账号
+        /// </summary>
+        /// <param name="user">用户信息</param>
+        public void onSwitchUser(AndroidJavaObject user)
+        {
+            OnSwitchUser(new bean.HykbUser(user));
+        }
+
+        /// <summary>
+        /// 登录成功
+        /// </summary>
+        /// <param name="user">用户信息</param>
+        public abstract void OnLoginSucceed(bean.HykbUser user);
+
+
+        /// <summary>
+        /// 登录失败
+        /// </summary>
+        /// <param name="code">返回code</param>
+        /// <param name="message">失败原因</param>
+        public abstract void OnLoginFailed(int code, string message);
+
+        /// <summary>
+        /// 切换账号
+        /// </summary>
+        /// <param name="user">用户信息</param>
+        public abstract void OnSwitchUser(bean.HykbUser user);
+    }
+}
+

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbUserListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 9fc97a3a4b479435cac792a9cff4d1a5
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 51 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbV2InitListener.cs

@@ -0,0 +1,51 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 初始化回调监听V2接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.login.listener
+{
+
+    public abstract class HykbV2InitListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// 初始化回调监听,继承自SDK源码,为避免untiy使用冲突,另外提供给untiy继承的为首字母大写形式的接口。
+        /// </summary>
+        public HykbV2InitListener() : base("com.m3839.sdk.login.listener.HykbV2InitListener") { }
+
+        /// <summary>
+        /// 初始化成功
+        /// </summary>
+        public void onSucceed()
+        {
+            OnSucceed();
+        }
+
+        /// <summary>
+        /// 初始化失败
+        /// </summary>
+        /// <param name="code">返回码</param>
+        /// <param name="message"> 错误信息</param>
+        public void onFailed(int code, string message)
+        {
+            OnFailed(code, message);
+        }
+
+        /// <summary>
+        /// 初始化成功
+        /// </summary>
+        public abstract void OnSucceed();
+
+        /// <summary>
+        /// 初始化失败
+        /// </summary>
+        /// <param name="code">返回码</param>
+        /// <param name="message"> 错误信息</param>
+        public abstract void OnFailed(int code, string message);
+    }
+
+}
+

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/login/listener/HykbV2InitListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 000e6d821f8664586adab93817d23190
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/paid.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 38192c797b276674d88de173ca3f717a
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 51 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/paid/HykbCheckListener.cs

@@ -0,0 +1,51 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+
+/// <summary>
+/// 付费下载校验监听接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.paid
+{
+    public abstract class HykbCheckListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// 快爆单机防沉迷回调接口
+        /// </summary>
+        public HykbCheckListener() : base("com.m3839.sdk.paid.HykbCheckListener") { }
+
+
+
+        void onAllowEnter()
+        {
+
+        }
+
+        /// <summary>
+        /// 校验不通过回调
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">返回的信息</param>
+        void onReject(int code, string errorMsg)
+        {
+
+        }
+
+
+        /// <summary>
+        /// 校验成功回调
+        /// </summary>
+        public abstract void OnAllowEnter();
+
+        /// <summary>
+        /// 校验失败回调
+        /// </summary>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">失败的返回的信息</param>
+        public abstract void OnReject(int code, string message);
+
+
+    }
+}
+

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/paid/HykbCheckListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: d08f16179ba4f984ebe8c8b5cebd46e9
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 31 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/paid/HykbPaidChecker.cs

@@ -0,0 +1,31 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 付费下载校验监听接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.paid
+{
+    public class HykbPaidChecker 
+    {
+        static AndroidJavaClass sdkClass = new AndroidJavaClass("com.m3839.sdk.paid.HykbPaidChecker");
+
+        public static void CheckLicense(string appId, string publicKey, HykbCheckListener listener)
+        {
+            sdkClass.CallStatic("checkLicense", HykbContext.GetInstance().GetActivity(), appId, publicKey, listener);
+        }
+
+        public static void SetDebug(bool isDebug)
+        {
+            sdkClass.CallStatic("setDebug", isDebug);
+        }
+
+        public static void ReleaseSDK()
+        {
+            sdkClass.CallStatic("ReleaseSDK");
+        }
+    }
+}
+

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/paid/HykbPaidChecker.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: b16be3ec01d82a3478e28f1cdd0c3783
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f9d965bcfa729b345a16ee7269b7afde
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 78 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/HykbPay.cs

@@ -0,0 +1,78 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using com.m3839.sdk.pay.bean;
+
+/// <summary>
+/// 好游快爆SDK
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.pay
+{
+    /// <summary>
+    /// 好游快爆SDK的静态方法包装,用于untiy与安卓SDK对接及交互。
+    /// </summary>
+    public class HykbPay
+    {
+        // 单例中间层对象,方便获取
+        private static AndroidJavaClass sPayJavaClass;
+        public static AndroidJavaClass getPayClass()
+        {
+            if (sPayJavaClass == null)
+            {
+                sPayJavaClass = new AndroidJavaClass("com.m3839.sdk.pay.HykbPay");
+            }
+            return sPayJavaClass;
+        }
+
+        /// <summary>
+        /// 调用支付
+        /// </summary>
+        /// <param name="payInfo">支付信息包装</param>
+        /// <param name="listener">支付结果的回调监听</param>
+        [System.Obsolete("该方法已过期")]
+        public static void pay(bean.HykbPayInfo payInfo, listener.HykbPayListener listener)
+        {
+            getPayClass().CallStatic("pay", HykbContext.GetInstance().GetActivity(), HykbPayInfo.ToA(payInfo), listener);
+        }
+
+        /// <summary>
+        /// 调用支付
+        /// </summary>
+        /// <param name="payInfo">支付信息包装</param>
+        /// <param name="listener">支付结果的回调监听</param>
+        public static void Pay(bean.HykbPayInfo payInfo, listener.HykbV2PayListener listener)
+        {
+            getPayClass().CallStatic("pay", HykbContext.GetInstance().GetActivity(), HykbPayInfo.ToA(payInfo), listener);
+        }
+
+        /// <summary>
+        /// 商品发放上报
+        /// </summary>
+        /// <param name="cpOrderId">游戏的订单编号</param>
+        /// <param name="money">充值金额</param>
+        /// <param name="goodsName">商品名称</param>
+        public static void reportNotifyGoods(string cpOrderId, string money, string goodsName)
+        {
+            getPayClass().CallStatic("reportNotifyGoods", cpOrderId, money, goodsName);
+        }
+
+        /// <summary>
+        /// 回调通知
+        /// </summary>
+        /// <param name="cpOrderId">游戏的订单编号</param>
+        public static void unityCallBackReport(string cpOrderId)
+        {
+            getPayClass().CallStatic("unityCallBackReport", cpOrderId);
+        }
+
+        /// <summary>
+        /// 资源释放
+        /// </summary>
+        public static void ReleaseSDK()
+        {
+            getPayClass().CallStatic("releaseSDK");
+        }
+
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/HykbPay.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a871c3875e749493d90c376ecabcdfb8
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/bean.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 950f88c1b720342cf946d1f084fd6646
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 63 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/bean/HykbPayInfo.cs

@@ -0,0 +1,63 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 快爆支付信息实体类
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.pay.bean
+{
+    public class HykbPayInfo
+    {
+        public string goodsName;
+        public int money;
+        public int server;
+        public string cpOrderId;
+        public string ext;
+        /// <summary>
+        /// 支付信息包装
+        /// </summary>
+        /// <param name="goodsName">商品信息</param>
+        /// <param name="money">下单金额,单位是元</param>
+        /// <param name="server">区服标识</param>
+        /// <param name="cpOrderId">游戏的订单编号</param>
+        /// <param name="ext">透传字段</param>
+        public HykbPayInfo(string goodsName, int money, int server, string cpOrderId, string ext)
+        {
+            this.goodsName = goodsName;
+            this.money = money;
+            this.server = server;
+            this.cpOrderId = cpOrderId;
+            this.ext = ext;
+
+            
+        }
+
+
+        /// <summary>
+        /// 支付信息包装
+        /// </summary>
+        /// <param name="payInfo">支付信java对象</param>
+        public HykbPayInfo(AndroidJavaObject payInfo)
+        {
+            this.goodsName = payInfo.Get<string>("goodsName");
+            this.money = payInfo.Get<int>("money");
+            this.server = payInfo.Get<int>("server");
+            this.cpOrderId = payInfo.Get<string>("cpOrderId");
+            this.ext = payInfo.Get<string>("ext");
+        }
+
+        public static AndroidJavaObject ToA(HykbPayInfo info)
+        {
+            AndroidJavaObject payInfo = new AndroidJavaObject("com.m3839.sdk.pay.bean.HykbPayInfo");
+            payInfo.Set<string>("cpOrderId", info.cpOrderId);
+            payInfo.Set<string>("goodsName", info.goodsName);
+            payInfo.Set<int>("money", info.money);
+            payInfo.Set<int>("server", info.server);
+            payInfo.Set<string>("ext", info.ext);
+
+            return payInfo;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/bean/HykbPayInfo.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e9911259892424cecb658cbc3da09c4f
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/listener.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: cea6963349fcd4427aec3b0aba4a4db2
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 39 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/listener/HykbPayListener.cs

@@ -0,0 +1,39 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 快爆支付回调接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.pay.listener
+{
+    public abstract class HykbPayListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// 支付回调监听,继承自SDK源码,为避免untiy使用冲突,另外提供给untiy继承的为首字母大写形式的接口。
+        /// </summary>
+        public HykbPayListener() : base("com.m3839.sdk.pay.listener.HykbPayListener") { }
+
+        /// <summary>
+        /// 支付结果
+        /// </summary>
+        /// <param name="code">支付结果标识码</param>
+        /// <param name="message">提示</param>
+        /// <param name="payInfo">支付原始数据</param>
+        public void onPayResult(int code, string message, AndroidJavaObject payInfo)
+        {
+            bean.HykbPayInfo hykbPayInfo = new bean.HykbPayInfo(payInfo);
+            HykbPay.unityCallBackReport(hykbPayInfo.cpOrderId);
+            OnPayResult(code, message, hykbPayInfo);
+        }
+
+        /// <summary>
+        /// 支付结果
+        /// </summary>
+        /// <param name="code">支付结果标识码</param>
+        /// <param name="message">提示</param>
+        /// <param name="payInfo">支付原始数据</param>
+        public abstract void OnPayResult(int code, string message, bean.HykbPayInfo payInfo);
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/listener/HykbPayListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 613319c5376964b1cb8b51c9ce5f1b6b
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 61 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/listener/HykbV2PayListener.cs

@@ -0,0 +1,61 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 快爆支付回调V2接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.pay.listener
+{
+    public abstract class HykbV2PayListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// 支付回调监听,继承自SDK源码,为避免untiy使用冲突,另外提供给untiy继承的为首字母大写形式的接口。
+        /// </summary>
+        public HykbV2PayListener() : base("com.m3839.sdk.pay.listener.HykbV2PayListener") { }
+
+        /// <summary>
+        /// 充值成功
+        /// </summary>
+        /// <param name="payInfo">订单信息</param>
+        public void onSucceed(AndroidJavaObject payInfo)
+        {
+            bean.HykbPayInfo hykbPayInfo = new bean.HykbPayInfo(payInfo);
+            HykbPay.unityCallBackReport(hykbPayInfo.cpOrderId);
+            OnSucceed(hykbPayInfo);
+        }
+
+     
+        /// <summary>
+        /// 充值失败
+        /// </summary>
+        /// <param name="payInfo">订单信息</param>
+        /// <param name="code">失败code</param>
+        /// <param name="message">失败原因</param>
+        public void onFailed(AndroidJavaObject payInfo, int code, string message)
+        {
+            bean.HykbPayInfo hykbPayInfo = new bean.HykbPayInfo(payInfo);
+            OnFailed(hykbPayInfo, code, message);
+        }
+
+
+        /// <summary>
+        /// 充值成功
+        /// </summary>
+        /// <param name="payInfo">订单信息</param>
+        public abstract void OnSucceed(bean.HykbPayInfo payInfo);
+
+
+        /// <summary>
+        /// 充值失败
+        /// </summary>
+        /// <param name="payInfo">订单信息</param>
+        /// <param name="code">失败code</param>
+        /// <param name="message">失败原因</param>
+        public abstract void OnFailed(bean.HykbPayInfo payInfo, int code, string message);
+
+
+    }
+}
+

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/pay/listener/HykbV2PayListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 7a0ba8a5fe27e4a9188d28dafd07739e
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/single.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ba3686d45635cc04283ad915c0e4eb40
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 35 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/single/UnionFcmListener.cs

@@ -0,0 +1,35 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 快爆单机防沉迷回调接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.single
+{
+    public abstract class UnionFcmListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// 快爆单机防沉迷回调接口
+        /// </summary>
+        public UnionFcmListener() : base("com.m3839.sdk.single.UnionFcmListener") { }
+
+        /// <summary>
+        /// 回调
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">返回的信息</param>
+        public void onFcm(int code, string message)
+        {
+            OnFcm(code, message);
+        }
+
+        /// <summary>
+        /// 回调
+        /// </summary>
+        /// <param name="code">code码,SDK预留</param>
+        /// <param name="message">返回的信息</param>
+        public abstract void OnFcm(int code, string message);
+    }
+}
+

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/single/UnionFcmListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 1592d956ea547e741bf1e8d9d372f2c5
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 54 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/single/UnionFcmSDK.cs

@@ -0,0 +1,54 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using com.m3839.sdk;
+
+
+/// <summary>
+/// 快爆单机防沉迷
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.single 
+{
+    public class UnionFcmSDK 
+    {
+
+        static AndroidJavaClass sdkClass = new AndroidJavaClass("com.m3839.sdk.single.UnionFcmSDK");
+
+        [System.Obsolete("该方法已过期")]
+        public static void InitSDK(string gameId, int orientation, UnionFcmListener listener)
+        {
+            AndroidJavaObject paramBuilder = new AndroidJavaObject("com.m3839.sdk.single.UnionFcmParam$Builder");
+            AndroidJavaObject param = paramBuilder.Call<AndroidJavaObject>("setGameId", gameId)
+                        .Call<AndroidJavaObject>("setOrientation", orientation)
+                        .Call<AndroidJavaObject>("build");
+            sdkClass.CallStatic("initSDK", HykbContext.GetInstance().GetActivity(), param, listener);
+        }
+
+        public static void Init(string gameId, int orientation, UnionV2FcmListener listener)
+        {
+            AndroidJavaObject paramBuilder = new AndroidJavaObject("com.m3839.sdk.single.UnionFcmParam$Builder");
+            AndroidJavaObject param = paramBuilder.Call<AndroidJavaObject>("setGameId", gameId)
+                        .Call<AndroidJavaObject>("setOrientation", orientation)
+                        .Call<AndroidJavaObject>("build");
+            sdkClass.CallStatic("init", HykbContext.GetInstance().GetActivity(), param, listener);
+        }
+
+        public static UnionFcmUser GetUser()
+        {
+            return new UnionFcmUser(sdkClass.CallStatic<AndroidJavaObject>("getUser"));
+        }
+
+        public static void SetDebug(bool isDebug)
+        {
+            sdkClass.CallStatic("setDebug", isDebug);
+        }
+
+        public static void ReleaseSDK()
+        {
+            sdkClass.CallStatic("ReleaseSDK");
+        }
+
+    }
+}
+

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/single/UnionFcmSDK.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 0069fd53bdc05c745909f4ad459ce7b7
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 81 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/single/UnionFcmUser.cs

@@ -0,0 +1,81 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+
+/// <summary>
+/// 快爆单机防沉迷用户信息实体类
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.single {
+
+    public class UnionFcmUser
+    {
+        private string userId;
+        private string nick;
+        private string type;
+        private string accessToken;
+
+        /// <summary>
+        /// 用户信息包装
+        /// </summary>
+        public UnionFcmUser(AndroidJavaObject user)
+        {
+            this.userId = user.Call<string>("getUserId");
+            this.nick = user.Call<string>("getNick");
+            this.type = user.Call<string>("getType");
+            this.accessToken = user.Call<string>("getAccessToken");
+        }
+
+        /// <summary>
+        /// 获得用户ID
+        /// </summary>
+        /// <returns>用户编号字符串</returns>
+        public string getUserId()
+        {
+            return userId;
+        }
+
+        /// <summary>
+        /// 获得昵称
+        /// </summary>
+        /// <returns>昵称字符串</returns>
+        public string getNick()
+        {
+            return nick;
+        }
+
+        /// <summary>
+        /// 获得登录类型
+        /// </summary>
+        /// <returns>类型字符串</returns>
+        public string getType()
+        {
+            return type;
+        }
+
+        /// <summary>
+        /// 用来校验登录授权过程真实性,accessToken有效期两小时
+        /// </summary>
+        /// <returns>类型字符串</returns>
+        public string getAccessToken()
+        {
+            return accessToken;
+        }
+
+        public string toString()
+        {
+            return "UnionFcmUser{" +
+                    "userId='" + userId + '\'' +
+                    ", nick='" + nick + '\'' +
+                    ", type='" + type + '\'' +
+                    ", accessToken='" + accessToken + '\'' +
+                    '}';
+        }
+
+    }
+
+
+}
+
+

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/single/UnionFcmUser.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f8c12c957bee874458c26ed024c2e884
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 44 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/single/UnionV2FcmListener.cs

@@ -0,0 +1,44 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 快爆单机防沉迷回调V2接口
+/// create by chenbaoyang
+/// </summary>
+namespace com.m3839.sdk.single
+{
+    public abstract class UnionV2FcmListener : AndroidJavaProxy
+    {
+        /// <summary>
+        /// 快爆单机防沉迷回调接口
+        /// </summary>
+        public UnionV2FcmListener() : base("com.m3839.sdk.single.UnionV2FcmListener") { }
+
+
+        /// <summary>
+        /// 防尘流出结束,返回用户信息
+        /// </summary>
+        /// <param name="user">快爆用户信息</param>
+        public void onSucceed(AndroidJavaObject user)
+        {
+            OnSucceed(new UnionFcmUser(user));
+        }
+
+        /// <summary>
+        /// 防沉迷/其他的失败原因
+        /// </summary>
+        /// <param name="code">失败code</param>
+        /// <param name="message">失败原因</param>
+        public void onFailed(int code, string message)
+        {
+            OnFailed(code, message);
+        }
+
+        public abstract void OnSucceed(UnionFcmUser user);
+
+
+        public abstract void OnFailed(int code, string message);
+    }
+
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/com/m3839/sdk/single/UnionV2FcmListener.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: c059dd536da6f4736882ce84ea126b58
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 13 - 3
GameClient/Assets/Game/Launcher/LauncherConfig.cs

@@ -23,7 +23,8 @@ namespace GFGGame
         public static string cfgUrl;
         //ƽ̨id
         public static int platformId = 1;
-        public static string logKey;
+        //ÇþµÀid
+        public static int ChannelId = 1;
         public static string logApiRootUrl;
         public static string logApiReportLauncherUrl;
         public static string apkVersion;
@@ -60,6 +61,17 @@ namespace GFGGame
             cfgName = "cfg_local";
 #endif
 
+
+#if QD_TAPTAP
+            ChannelId = 1;
+#elif QD_HYKB
+            ChannelId = 2;
+#elif QD_BILIBILI
+            ChannelId = 3;
+#else
+            ChannelId = 101;
+#endif
+
             cfgUrl = "http://gfg1.obs.cn-north-4.myhuaweicloud.com/14/platform/{cfgName}.json";
         }
 
@@ -71,10 +83,8 @@ namespace GFGGame
             LauncherConfig.logApiRootUrl = result.logApiUrl;
             //LauncherConfig.logApiRootUrl = "http://10.108.64.106:8080/api/Log/";
             LauncherConfig.logApiReportLauncherUrl = LauncherConfig.logApiRootUrl + "ReportNode";
-            LauncherConfig.logKey = result.logKey;
             LauncherConfig.apkVersion = result.apkVersion;
             LauncherConfig.serverStatus = int.Parse(result.serverStatus);
-            LauncherConfig.platformId = int.Parse(result.platformId);
             LauncherConfig.onDebug = int.Parse(result.onDebug);
             LauncherConfig.manifest_v = result.manifest_v;
         }

+ 2 - 2
GameClient/Assets/Game/Launcher/Log/LogServerHelperHttp.cs

@@ -10,9 +10,9 @@ namespace GFGGame
         /// 发送节点日志
         /// </summary>
         /// <param name="node"></param>
-        public static void SendNodeLog(int node, int serverId = 1)
+        public static void SendNodeLog(int node)
         {
-            var body = $"?logStr={LauncherConfig.platformId}|{SystemInfo.deviceUniqueIdentifier}|{node}";
+            var body = $"?logStr={LauncherConfig.platformId}|{SystemInfo.deviceUniqueIdentifier}|{node}|{LauncherConfig.ChannelId}";
             HttpTool.Instance.Get(LauncherConfig.logApiReportLauncherUrl + body, null,false);
         }
     }

+ 8 - 0
GameClient/Assets/Game/Launcher/Platform.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 31a01853c0a88184db2724186298df8b
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 10 - 0
GameClient/Assets/Game/Launcher/Platform/ChannelID.cs

@@ -0,0 +1,10 @@
+namespace GFGGame
+{
+    public class ChannelID
+    {
+        public const int TapTap = 1;
+        public const int HYKB = 2;
+        public const int BiliBili = 3;
+        public const int Test = 101;
+    }
+}

部分文件因为文件数量过多而无法显示