123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using System.IO;
- using System;
- namespace LoyalSoftSDK
- {
- public class UserManager : MonoBehaviour
- {
- private static UserManager instance;
- public static UserManager GetInstance()
- {
- if (instance == null)
- {
- instance = new GameObject("UserManager").AddComponent<UserManager>();
- DontDestroyOnLoad(instance.transform);
-
- }
- return instance;
- }
- //当前用户
- private UserData user;
- //存储用户
- private SaveUserData saveUser;
- private string USER_DATA_URL;
- private void Awake()
- {
- USER_DATA_URL = Application.persistentDataPath + "/user.data";
- // SetSaveUserData("18332142663","ssdgdfsdtydfg","12345787");
- TakeOutUserByLocally();
- }
- //存储路径
- /// <summary>
- /// 设置当前用户
- /// </summary>
- /// <param name="_userId">用户ID</param>
- /// <param name="_account">用户账号</param>
- /// <param name="_passWord">用户密码(MD5)</param>
- /// <param name="_lastLoginTime">最后登录时间</param>
- /// <param name="_authentication">实名认证情况</param>
- public void setNewUser(string _userId, string _account, bool _authentication)
- {
- user = new UserData( _userId,_account,_authentication);
- }
- /// <summary>
- /// 获取当前用户
- /// </summary>
- /// <returns></returns>
- public UserData GetCurUser()
- {
- return user;
- }
- public void ClearCurUser()
- {
- user = null;
- }
- /// <summary>
- /// 存储用户
- /// </summary>
- /// <param name="_account"></param>
- /// <param name="_passWord"></param>
- /// <param name="_lastLoginTime"></param>
- public void SetSaveUserData(string _account, string _passWord, string _lastLoginTime)
- {
- saveUser = new SaveUserData(_account, _passWord, _lastLoginTime);
- SaveUserToLocally();
- }
- public SaveUserData GetSaveUser()
- {
- return saveUser;
- }
- /// <summary>
- /// 保存用户信息到本地
- /// </summary>
- /// <param name="_user"></param>
- private void SaveUserToLocally()
- {
- string saveStr = "";
- Dictionary<string, object> userDic = new Dictionary<string, object>();
- userDic.Add("account", saveUser.account);
- userDic.Add("passWord", saveUser.passWord);
- userDic.Add("lastLoginTime", saveUser.lastLoginTime);
- saveStr = MiniJSON.Json.Serialize(userDic);
- using (StreamWriter sw = File.CreateText(USER_DATA_URL))
- {
- sw.Write(saveStr);
- }
- }
- /// <summary>
- /// 从本地取出保存的用户信息
- /// </summary>
- /// <returns></returns>
- private void TakeOutUserByLocally()
- {
- if (!File.Exists(USER_DATA_URL))
- {
- saveUser = new SaveUserData("", "", "");
- }
- else
- {
- string userStr;
- using (StreamReader sr = File.OpenText(USER_DATA_URL))
- {
- userStr = sr.ReadToEnd();
- }
- object jsonParsed = MiniJSON.Json.Deserialize(userStr);
- if (jsonParsed != null)
- {
- Dictionary<string, object> jsonMap = jsonParsed as Dictionary<string, object>;
- string account = "";
- string passWord = "";
- string lastLoginTime = "";
- if (jsonMap.ContainsKey("account"))
- {
- account = jsonMap["account"].ToString();
- }
- if (jsonMap.ContainsKey("passWord"))
- {
- passWord = jsonMap["passWord"].ToString();
- }
- if (jsonMap.ContainsKey("lastLoginTime"))
- {
- lastLoginTime = jsonMap["lastLoginTime"].ToString();
- }
- saveUser = new SaveUserData(account, passWord, lastLoginTime);
- }
- }
- }
- //public void NetRequest(string url, string packet, Action<string, string> callback)
- //{
- // StartCoroutine(IENetRequest(url, packet, callback));
- //}
- /// <summary>
- /// 网络请求(就一个协成方法不再单独写了)
- /// </summary>
- /// <returns></returns>
- public IEnumerator NetRequest(string url, string packet, Action<string, string> callback)
- {
- UIFormManager.GetInstance().ShowUIForm("LoadingPanel",null,null);
- WWW www = null;
- DateTime maxTs = DateTime.Now.AddSeconds(25);
- byte[] bytedata = System.Text.Encoding.UTF8.GetBytes(packet);
- www = new WWW(url, bytedata);
- if (null == www || www.error != null)
- {
-
- callback("err","wwwerror@:@" + www.error);
- UIFormManager.GetInstance().CloseUIForm("LoadingPanel");
- yield break;
- }
- // 超时检测
- while (false == www.isDone)
- {
- TimeSpan span = DateTime.Now - maxTs;
- if (span.TotalMilliseconds < 0)
- {
- yield return null;
- }
- else
- {
- Debug.LogError("超时");
- callback("err","timeout@:@网络超时");
- UIFormManager.GetInstance().CloseUIForm("LoadingPanel");
- yield break;
- }
- }
- // 网络错误检测
- if (www.error != null || www.text == null)
- {
- // Debug.Log("www error:" + www.error);
- callback("err","wwwerror@:@" + www.error);
- UIFormManager.GetInstance().CloseUIForm("LoadingPanel");
- yield break;
- }
- callback("succees", www.text);
- UIFormManager.GetInstance().CloseUIForm("LoadingPanel");
- }
-
- }
-
- }
|