SDKCallBack.cs 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using LoyalSoftSDK;
  5. using System;
  6. /// <summary>
  7. /// 曹强说有些平台比较怪,按他描述的情况分析的话,我觉得还是用下面的类。ljp20180112
  8. /// </summary>
  9. public class SDKCallBack : MonoSingleton<SDKCallBack>
  10. {
  11. /// <summary>
  12. /// 声明一个委托类型来适配曹强sdk的消息回调。
  13. /// </summary>
  14. /// <param name="data"></param>
  15. public delegate void sdkcallbackdelegate(LoyalGameCallbackData data);
  16. public sdkcallbackdelegate InitCompelete;
  17. public sdkcallbackdelegate LoginCompelete;
  18. public sdkcallbackdelegate LogoutCompelete;
  19. public void init(LoyalGameCallbackData data)
  20. {
  21. //UnityEngine.Debug.Log(DateTime.Now.ToString("HH:mm:ss fffff") + " Final ");
  22. Debug.Log("开始初始化skdcallback");
  23. LoyalGameSDKCallBack.InitCallback();
  24. LogHelper.Log("SDK回调:" + data.action + " " + data.msg + " " + data.data);
  25. switch (data.action)
  26. {
  27. case "exitSuccees":
  28. ExitCalback(data);
  29. break;
  30. case "logoutSuccees":
  31. if (LogoutCompelete != null)
  32. {
  33. LogoutCompelete(data);
  34. }
  35. break;
  36. case "loginCancle":
  37. break;
  38. case "loginSuccees":
  39. LogHelper.Log("login成功,准备init");
  40. if (LoginCompelete != null)
  41. {
  42. LoginCompelete(data);
  43. }
  44. break;
  45. case "initSuccees":
  46. LogHelper.Log("init成功,准备init");
  47. if (InitCompelete != null)
  48. {
  49. InitCompelete(data);
  50. }
  51. break;
  52. case "paySuccees":
  53. LogHelper.Log("付款成功,准备提服务器");
  54. PanelHelper.Instance.ShowPanel("UI_WaitingForPaySuccessWindow");
  55. PayProxy.Instance.PayDeliverGoods(long.Parse(data.data), (lst) =>
  56. {
  57. if (lst.Count > 0)
  58. {
  59. PanelHelper.Instance.ShowPanel("UI_ShopPrizesPanel", (panel) =>
  60. {
  61. PanelHelper.Instance.ClosePanel("UI_WaitingForPaySuccessWindow");
  62. UI_ShopPrizesPanel shopPrize = panel.GetComponent<UI_ShopPrizesPanel>();
  63. shopPrize.Init();
  64. shopPrize.Show(lst);
  65. });
  66. }
  67. else
  68. {
  69. PanelHelper.Instance.ClosePanel("UI_WaitingForPaySuccessWindow");
  70. UI_CueDialog.Instance().Open("交易完成");
  71. }
  72. Debug.Log("交易完成");
  73. });
  74. break;
  75. case "payFaill":
  76. break;
  77. case "initFail":
  78. break;
  79. default:
  80. break;
  81. }
  82. }
  83. private void LoginCompeletSDK(LoyalGameCallbackData data)
  84. {
  85. LogHelper.Log("code: " + data.action + "msg: " + data.msg + "--data: " + data.data);
  86. if (data.action.Equals("0"))
  87. {
  88. if (PlayerPrefs.GetString("SDK").Equals("yyb"))
  89. {
  90. string yybname = PlayerPrefs.GetString("LoginSDK");
  91. if (!string.IsNullOrEmpty(yybname))
  92. {
  93. PlayerPrefs.SetString("LoginYYBSDK", yybname);
  94. }
  95. }
  96. string sdkname = PlayerPrefs.GetString("SDK");
  97. if (string.IsNullOrEmpty(sdkname))
  98. {
  99. LogHelper.Log("sdk获取名称失败");
  100. return;
  101. }
  102. UserProxy.Instance.userName = sdkname + "-" + data.data;
  103. LocalSettings.DefaultUserName = UserProxy.Instance.userName;
  104. GameCfg.SaveLocalSettings();
  105. PlayerPrefs.SetInt("NeedLogin", 0);
  106. if (LoginCompelete == null)
  107. {
  108. PlayerPrefs.SetInt("NeedLogin", 1);
  109. PanelHelper.Instance.UnloadAllPanel();
  110. if (ThridDelegateHelper.Instance.TriggerLogOutChatEvent != null)
  111. {
  112. ThridDelegateHelper.Instance.TriggerLogOutChatEvent.Invoke();
  113. }
  114. LevelManager.Instance().LoadLevel(E_Level.newsplash);
  115. }
  116. }
  117. if (LoginCompelete != null)
  118. {
  119. LoginCompelete.Invoke(data);
  120. }
  121. }
  122. private void LogoutCompeleteSDK(LoyalGameCallbackData data)
  123. {
  124. LogHelper.Log("登出时输出:" + data.action + " " + data.msg + " " + data.data);
  125. PlayerPrefs.SetString("LoginYYBSDK", "");
  126. if (data.action.Equals("0"))
  127. {
  128. PlayerPrefs.SetString("LoginYYBSDK", "");
  129. PlayerPrefs.SetInt("NeedLogin", 1);
  130. SwitchAccount();
  131. }
  132. if (LogoutCompelete != null)
  133. {
  134. LogoutCompelete.Invoke(data);
  135. }
  136. }
  137. private void InitCompeletSDK(LoyalGameCallbackData data)
  138. {
  139. PlayerPrefs.SetInt("NeedLogin", 1);
  140. if (InitCompelete != null)
  141. {
  142. InitCompelete.Invoke(data);
  143. }
  144. }
  145. private void ExitCalback(LoyalGameCallbackData data)
  146. {
  147. LogHelper.Log("退出时输出:" + data.action + " " + data.msg + " " + data.data);
  148. // if (data.action.Equals("0"))
  149. {
  150. ExitGame();
  151. }
  152. }
  153. /// <summary>
  154. /// 退出游戏
  155. /// </summary>
  156. private void ExitGame()
  157. {
  158. // LoyalGameSDK.Instance.FoceExit();
  159. Application.Quit();
  160. }
  161. private void SwitchAccount()
  162. {
  163. if (LoginCompelete == null)
  164. {
  165. PanelHelper.Instance.UnloadAllPanel();
  166. if (ThridDelegateHelper.Instance.TriggerLogOutChatEvent != null)
  167. {
  168. ThridDelegateHelper.Instance.TriggerLogOutChatEvent.Invoke();
  169. }
  170. if (GlobalConfig.is_OpenGuide)
  171. {
  172. }
  173. LevelManager.Instance().LoadLevel(E_Level.newsplash);
  174. }
  175. }
  176. }