LoginDataManager.cs 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. using LitJson;
  2. using SC.XR.Unity;
  3. using System;
  4. using System.Collections;
  5. using System.Collections.Generic;
  6. using UnityEngine;
  7. public class LoginDataManager:Singleton<LoginDataManager>
  8. {
  9. string[] testAclist =new string[] { "戴广军","曹宇","刘晟","王玉洁", "戴广军", "曹宇", "刘晟", "王玉洁", "戴广军", "曹宇", "刘晟", "王玉洁", "戴广军", "曹宇", "刘晟", "王玉洁", "戴广军", "曹宇", "刘晟", "王玉洁" };
  10. List<AccountData> ldata;
  11. //获取 账号登录的列表
  12. public void GetLoginData(Action<List<AccountData>> callback)
  13. {
  14. ldata = new List<AccountData>();
  15. AccountData adata;
  16. for (int i = 0; i < testAclist.Length; i++)
  17. {
  18. adata = new AccountData();
  19. adata.account = testAclist[i];
  20. adata.name = testAclist[i];
  21. adata.iconUrl = "/icon/"+i+".png";
  22. ldata.Add(adata);
  23. }
  24. WindowsManager.Instance.StartCoroutine(testBack(callback));
  25. }
  26. IEnumerator testBack(Action<List<AccountData>> callback)
  27. {
  28. yield return null;
  29. callback.Invoke(ldata);
  30. }
  31. List<AccountData> OftenUseldata;
  32. //获取常用账号列表
  33. public void GetOftenUseLoginData(Action<List<AccountData>> callback)
  34. {
  35. OftenUseldata = new List<AccountData>();
  36. JsonData data = getOftenUseAcc();
  37. if(data.IsArray)
  38. {
  39. AccountData adata;
  40. for (int i = data.Count-1; i >=0 ; i--)
  41. {
  42. adata = new AccountData();
  43. adata.account = data[i]["account"].ToString();
  44. adata.name = data[i]["name"].ToString();
  45. adata.iconUrl = data[i]["iconUrl"].ToString();
  46. adata.password = data[i]["password"].ToString();
  47. OftenUseldata.Add(adata);
  48. }
  49. }
  50. WindowsManager.Instance.StartCoroutine(testOftenUseBack(callback));
  51. }
  52. int checkData(JsonData adata)
  53. {
  54. JsonData data = getOftenUseAcc();
  55. if (data.IsArray)
  56. {
  57. for (int i = data.Count - 1; i >= 0; i--)
  58. {
  59. if(adata["account"].ToString() == data[i]["account"].ToString())
  60. {
  61. return i;
  62. }
  63. }
  64. }
  65. return -1;
  66. }
  67. IEnumerator testOftenUseBack(Action<List<AccountData>> callback)
  68. {
  69. yield return null;
  70. callback.Invoke(OftenUseldata);
  71. }
  72. //添加常驻账号
  73. public void setOftenUseAcc(AccountData adata)
  74. {
  75. JsonData data = getOftenUseAcc();
  76. JsonData accData = new JsonData();
  77. accData["name"] = adata.name;
  78. accData["password"] = adata.password;
  79. accData["account"] = adata.account;
  80. accData["iconUrl"] = adata.iconUrl;
  81. int index = checkData(accData);
  82. JsonData accDataNew = new JsonData();
  83. accDataNew.Add(accData);
  84. if(data!=null&&data.IsArray)
  85. {
  86. for (int i = 0; i < data.Count; i++)
  87. {
  88. if (index != i)
  89. accDataNew.Add(data[i]);
  90. if (accDataNew.Count >= 4)
  91. break;
  92. }
  93. }
  94. PlayerPrefs.SetString("OftenUse", accDataNew.ToJson());
  95. PlayerPrefs.Save();
  96. }
  97. //获取常驻账号
  98. public JsonData getOftenUseAcc()
  99. {
  100. string OftenUse = PlayerPrefs.GetString("OftenUse");
  101. JsonData data = new JsonData();
  102. if (OftenUse != "" && OftenUse != null)
  103. {
  104. try
  105. {
  106. data = JsonMapper.ToObject(OftenUse);
  107. }
  108. catch
  109. {
  110. }
  111. }
  112. return data;
  113. }
  114. }
  115. public class AccountData
  116. {
  117. public string name = "";
  118. public string password = "";
  119. public string account = "";
  120. public string iconUrl = "";
  121. }