1515 lines
56 KiB
C#
1515 lines
56 KiB
C#
using Assets.Scenes.Ride.Scripts;
|
||
using Assets.Scripts;
|
||
using Assets.Scripts.Apis;
|
||
using Assets.Scripts.Apis.Models;
|
||
using Assets.Scripts.Scenes;
|
||
using Assets.Scripts.UI.Control;
|
||
using Assets.Scripts.UI.Prefab.Login;
|
||
using DG.Tweening;
|
||
using Newtonsoft.Json;
|
||
using Newtonsoft.Json.Linq;
|
||
using System;
|
||
using System.Collections;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Reflection;
|
||
using System.Text;
|
||
using System.Text.RegularExpressions;
|
||
using System.Threading;
|
||
using System.Threading.Tasks;
|
||
using System.Timers;
|
||
using UnityEngine;
|
||
using UnityEngine.Android;
|
||
using UnityEngine.Events;
|
||
using UnityEngine.EventSystems;
|
||
using UnityEngine.SceneManagement;
|
||
using UnityEngine.UI;
|
||
#if !(UNITY_IOS || UNITY_ANDROID)
|
||
using ZenFulcrum.EmbeddedBrowser;
|
||
#endif
|
||
//记录:小f 是-457和-681
|
||
|
||
public class QUserInfo
|
||
{
|
||
public long Id { get; set; }
|
||
public string Phone { get; set; }
|
||
public string NickName { get; set; }
|
||
public string Avatar { get; set; }
|
||
public string Cookie { get; set; }
|
||
}
|
||
public class LoginForm
|
||
{
|
||
public InputField email { get; set; }
|
||
public InputField password { get; set; }
|
||
}
|
||
public class SignForm
|
||
{
|
||
//页面1
|
||
public InputField email { get; set; }
|
||
public InputField captcha { get; set; }
|
||
public InputField password { get; set; }
|
||
public InputField cpassword { get; set; }
|
||
//页面2
|
||
public Dropdown years { get; set; }
|
||
public Dropdown months { get; set; }
|
||
public Dropdown days { get; set; }
|
||
public Dropdown genders { get; set; }
|
||
public InputField weight { get; set; }
|
||
public InputField height { get; set; }
|
||
public Dropdown countrys { get; set; }
|
||
public Dropdown units { get; set; }
|
||
}
|
||
public class LoginController : BaseScene
|
||
{
|
||
public GameObject loadingPanel { get; set; }
|
||
|
||
private Transform mainContent;
|
||
/*初始页面*/
|
||
private Transform quickContainer;
|
||
private Transform loginContainer;
|
||
private Transform signContainer;
|
||
//修改高度
|
||
Transform LoginBg;
|
||
/*初始页面*/
|
||
LoginForm loginForm;
|
||
[SerializeField] Button loginReturn2;
|
||
private Button remember;
|
||
/*滑动相关*/
|
||
[SerializeField] GameObject loginScrollView;
|
||
[SerializeField] GameObject signScrollView;
|
||
[SerializeField] GameObject avatarScrollView;
|
||
/*滑动相关*/
|
||
//注册
|
||
private Transform signPage1;
|
||
private Transform signPage2;
|
||
private Transform signScrollBar;
|
||
private SignForm signForm;
|
||
private LoginRegOptions regOptions;
|
||
|
||
private ScrollRect scrollPanel;
|
||
private ScrollRect scrollSign;
|
||
private ScrollRect scrollAvatar;
|
||
private Transform imagexf, imagedf;
|
||
//注册主页面
|
||
private UserResultModel userResult;
|
||
/*微信相关*/
|
||
#if !(UNITY_IOS || UNITY_ANDROID)
|
||
private Browser wxBrowser;
|
||
#endif
|
||
private string wxState;
|
||
private Transform wxLogin1;
|
||
private Transform wxLogin2;
|
||
private Transform wxLogin3;
|
||
private JObject wxInfoJson;
|
||
private bool wxLock;
|
||
/*微信相关*/
|
||
private List<QUserInfo> userInfos;
|
||
|
||
/*退出按钮*/
|
||
[SerializeField] Button exit;
|
||
/*退出按钮*/
|
||
//其他
|
||
[SerializeField] RawImage loading;
|
||
Transform toolContainer;
|
||
Dictionary<string, Selectable> formDict, signFormDict;
|
||
|
||
public string avatarName { get; private set; }
|
||
|
||
public Texture avatar;
|
||
// Start is called before the first frame update
|
||
void Start()
|
||
{
|
||
#if UNITY_ANDROID || UNITY_IOS
|
||
loadingPanel = transform.Find("LoadingPanel").gameObject;
|
||
#endif
|
||
#if UNITY_ANDROID
|
||
Permission.RequestUserPermission(Permission.FineLocation);
|
||
Permission.RequestUserPermission(Permission.ExternalStorageRead);
|
||
Permission.RequestUserPermission(Permission.ExternalStorageWrite);
|
||
#elif UNITY_IOS
|
||
Input.location.Start();
|
||
#endif
|
||
UIManager.SetModalPanel(transform.Find("ModalPanel").GetComponent<PFUIPanel>());
|
||
if (!string.IsNullOrEmpty(App.is401))
|
||
{
|
||
UIManager.ShowAlert("WARNING", "Your account has been logged in on other devices. If you did not do it yourself, please change your password in time.");
|
||
}
|
||
Init();
|
||
if (loginScrollView != null)
|
||
{
|
||
scrollPanel = loginScrollView.GetComponent<ScrollRect>();
|
||
LoginBg = loginScrollView.transform.Find("Viewport").Find("LoginBg");
|
||
mainContent = loginScrollView.transform.Find("Viewport").Find("Content");
|
||
quickContainer = mainContent.Find("Empty").Find("FormContainer-Quick");
|
||
loginContainer = mainContent.Find("FormContainer-Login").Find("Mask").Find("FormContainer");
|
||
signContainer = mainContent.Find("FormContainer-Sign");
|
||
}
|
||
if (signScrollView != null)
|
||
{
|
||
scrollSign = signScrollView.GetComponent<ScrollRect>();
|
||
var content = signScrollView.transform.Find("Viewport").Find("Content");
|
||
signPage1 = content.Find("FirstPage");
|
||
UIManager.AddEvent(signPage1.Find("next").GetComponent<Button>().gameObject,
|
||
EventTriggerType.PointerClick, (b) => goRegNext());
|
||
UIManager.AddEvent(signPage1.Find("BtnModiPass").GetComponent<Button>().gameObject,
|
||
EventTriggerType.PointerClick, (b) => goResetPassword());
|
||
//signPage1.Find("next").GetComponent<Button>().onClick.AddListener(() => { goRegNext(); });
|
||
UIManager.AddEvent(signPage1.Find("Captcha").Find("BtnGet").gameObject,
|
||
EventTriggerType.PointerClick, (b) => GetCaptcha());
|
||
//signPage1.Find("Captcha").Find("BtnGet").GetComponent<Button>().onClick.AddListener(GetCaptcha);
|
||
var email = signPage1.Find("Email").GetComponent<InputField>();
|
||
var captcha = signPage1.Find("Captcha").GetComponent<InputField>();
|
||
var password = signPage1.Find("Password").GetComponent<InputField>();
|
||
var cpassword = signPage1.Find("CPassword").GetComponent<InputField>();
|
||
//第三方登录要用的按钮
|
||
UIManager.AddEvent(signPage1.Find("previousThird").GetComponent<Button>().gameObject,
|
||
EventTriggerType.PointerClick, (b) => goThirdPrev());
|
||
//signPage1.Find("previousThird").GetComponent<Button>().onClick.AddListener(goThirdPrev);
|
||
UIManager.AddEvent(signPage1.Find("signThird").GetComponent<Button>().gameObject,
|
||
EventTriggerType.PointerClick, (b) => goRegNext(1));
|
||
//signPage1.Find("signThird").GetComponent<Button>().onClick.AddListener(() => { goRegNext(1); });
|
||
signPage2 = content.Find("NextPage");
|
||
//UIManager.AddEvent(signPage2.Find("previous").GetComponent<Button>().gameObject,
|
||
// EventTriggerType.PointerClick, (b) => goRegPrev());
|
||
//signPage2.Find("previous").GetComponent<Button>().enabled = false;
|
||
//signPage2.Find("previous").GetComponent<Button>().interactable = false;
|
||
//signPage2.Find("previous").GetComponent<Button>().onClick.AddListener(goRegPrev);
|
||
UIManager.AddEvent(signPage2.Find("sign").GetComponent<Button>().gameObject,
|
||
EventTriggerType.PointerClick, (b) => goRegEnd());
|
||
//signPage2.Find("sign").GetComponent<Button>().onClick.AddListener(goRegEnd);
|
||
//注册2 字段
|
||
var years = signPage2.Find("Year").GetComponent<Dropdown>();
|
||
var months = signPage2.Find("Month").GetComponent<Dropdown>();
|
||
var days = signPage2.Find("Day").GetComponent<Dropdown>();
|
||
var genders = signPage2.Find("Gender").GetComponent<Dropdown>();
|
||
var countrys = signPage2.Find("Country").GetComponent<Dropdown>();
|
||
var units = signPage2.Find("Unit").GetComponent<Dropdown>();
|
||
regOptions = new LoginRegOptions();
|
||
years.options = regOptions.years;
|
||
months.options = regOptions.months;
|
||
days.options = regOptions.days;
|
||
years.captionText.text = App.GetLocalString("Year");
|
||
months.captionText.text = App.GetLocalString("Month");
|
||
days.captionText.text = App.GetLocalString("Day");
|
||
years.onValueChanged.AddListener((int index) =>
|
||
{
|
||
if (index != -1 && months.value != -1)
|
||
{
|
||
days.options = regOptions.GetDayOptions(int.Parse(years.captionText.text), int.Parse(months.captionText.text));
|
||
days.value = 0;
|
||
}
|
||
});
|
||
months.onValueChanged.AddListener((int index) =>
|
||
{
|
||
if (index != -1 && years.value != -1)
|
||
{
|
||
days.options = regOptions.GetDayOptions(int.Parse(years.captionText.text), int.Parse(months.captionText.text));
|
||
days.value = 0;
|
||
}
|
||
});
|
||
genders.options = regOptions.genders;
|
||
genders.captionText.text = App.GetLocalString("Gender");
|
||
countrys.options = regOptions.countrys;
|
||
countrys.value = regOptions.countryDefaultValue;
|
||
countrys.onValueChanged.AddListener((int index) =>
|
||
{
|
||
countrys.transform.Find("RawImage").GetComponent<RawImage>().texture = regOptions.GetCountryImage(index);
|
||
});
|
||
units.options = regOptions.units;
|
||
units.captionText.text = App.GetLocalString("Display Units");
|
||
signForm = new SignForm()
|
||
{
|
||
email = email,
|
||
captcha = captcha,
|
||
password = password,
|
||
cpassword = cpassword,
|
||
weight = signPage2.Find("Weight").GetComponent<InputField>(),
|
||
height = signPage2.Find("Height").GetComponent<InputField>(),
|
||
years = years,
|
||
months = months,
|
||
days = days,
|
||
genders = genders,
|
||
countrys = countrys,
|
||
units = units,
|
||
};
|
||
#if !(UNITY_ANDROID || UNITY_IOS)
|
||
signScrollBar = signScrollView.transform.Find("Image").Find("Image");
|
||
#endif
|
||
}
|
||
if (avatarScrollView != null)
|
||
{
|
||
scrollAvatar = avatarScrollView.GetComponent<ScrollRect>();
|
||
var content = scrollAvatar.transform.Find("Viewport").Find("Content");
|
||
foreach (var user in userInfos)
|
||
{
|
||
#if !(UNITY_ANDROID || UNITY_IOS)
|
||
var info = Instantiate(Resources.Load<GameObject>("UI/Prefab/Login/QuickUserInfo")).transform;
|
||
#else
|
||
var info = Instantiate(Resources.Load<GameObject>("UI/Prefab/Login/Mobile/QuickUserInfo")).transform;
|
||
#endif
|
||
info.GetComponent<QuickLoginUser>().Initial(user, transform);
|
||
info.SetParent(content);
|
||
info.localScale = new Vector3(1, 1, 1);
|
||
}
|
||
content.Find("empty1").transform.SetSiblingIndex(0);
|
||
content.Find("empty2").transform.SetSiblingIndex(content.childCount - 1);
|
||
scrollAvatar.GetComponent<QuickLoginScroll>().Initial();
|
||
}
|
||
if (quickContainer != null)
|
||
{
|
||
var loginNewAccount = quickContainer.Find("loginNewAccount").GetComponent<Button>();
|
||
UIManager.AddEvent(loginNewAccount.gameObject, EventTriggerType.PointerClick, (b) => goLogin());
|
||
}
|
||
if (loginContainer != null)
|
||
{
|
||
var returnQuick = loginContainer.Find("returnQuick").GetComponent<Button>();
|
||
UIManager.AddEvent(returnQuick.gameObject, EventTriggerType.PointerClick, (b) => ReturnQuick());
|
||
var sign = loginContainer.Find("reg").GetComponent<Button>();
|
||
UIManager.AddEvent(sign.gameObject, EventTriggerType.PointerClick, (b) => goSign());
|
||
remember = loginContainer.Find("rememberButton").GetComponent<Button>();
|
||
UIManager.AddEvent(remember.gameObject, EventTriggerType.PointerClick, (b) =>
|
||
{
|
||
var gou = remember.transform.Find("Gou");
|
||
if (gou.gameObject.activeSelf)
|
||
{
|
||
gou.gameObject.SetActive(false);
|
||
}
|
||
else
|
||
{
|
||
gou.gameObject.SetActive(true);
|
||
}
|
||
});
|
||
UIManager.AddEvent(loginContainer.Find("ForgetPassword").gameObject, EventTriggerType.PointerClick, (e) => goSign(type: 1));
|
||
#if !(UNITY_IOS || UNITY_ANDROID)
|
||
var wechatLogin = loginContainer.Find("otherContainer").Find("Wechat").GetComponent<Button>();
|
||
UIManager.AddEvent(wechatLogin.gameObject, EventTriggerType.PointerClick, (b) =>
|
||
{
|
||
|
||
if (wxLock) return;
|
||
wxLock = true;
|
||
//wxState = (DateTime.Now.ToUniversalTime().Ticks / 10000 * new System.Random().Next(1, 5)).ToString();
|
||
wxBrowser.Url = $"https://open.weixin.qq.com/connect/qrconnect?appid={App.WxAppId}&redirect_uri=https%3A%2F%2Fwx.powerfun.com.cn%2FNoAuth%2Fv1%2FWxWebLogin&response_type=code&scope=snsapi_login&state=unity#wechat_redirect";
|
||
AdjustWxQrCode();
|
||
//wxBrowser.RegisterFunction("isFinish", args =>
|
||
//{
|
||
// Debug.Log(331);
|
||
// startJs = false;
|
||
//});
|
||
////AdjustWxQrCode();
|
||
//startJs = true;
|
||
//var wx1 = mainContent.Find("FormContainer-Login").Find("Mask").Find("FormContainer-wx1");
|
||
wxLogin1.gameObject.SetActive(true);
|
||
//Debug.Log(178 + "已经开启" + wx1.gameObject.activeSelf);
|
||
//wx1.GetComponent<CanvasGroup>().DOFade(1, 0.8f).onComplete = () => { wxLock = false; };
|
||
wxLogin1.DOLocalMoveY(0, 0.3f).onComplete = () => { wxLock = false; };
|
||
|
||
});
|
||
#endif
|
||
var login = loginContainer.Find("login").GetComponent<Button>();
|
||
UIManager.AddEvent(login.gameObject, EventTriggerType.PointerClick, (b) => Submit());
|
||
//login.onClick.AddListener(Submit);
|
||
loginForm = new LoginForm()
|
||
{
|
||
email = loginContainer.Find("phone").GetComponent<InputField>(),
|
||
password = loginContainer.Find("pwd").GetComponent<InputField>()
|
||
};
|
||
}
|
||
//if (loginReturn2 != null)
|
||
//{
|
||
// loginReturn2.onClick.AddListener(goLoginReturn2);
|
||
//}
|
||
if (signContainer != null)
|
||
{
|
||
#if !(UNITY_ANDROID || UNITY_IOS)
|
||
var loginr2 = signContainer.Find("loginr2").GetComponent<Button>();
|
||
UIManager.AddEvent(loginr2.gameObject, EventTriggerType.PointerClick, (b) =>
|
||
{
|
||
goLoginReturn2();
|
||
});
|
||
#else
|
||
UIManager.AddEvent(signContainer.Find("loginr2").gameObject, EventTriggerType.PointerClick, (b) =>
|
||
{
|
||
goLoginReturn2();
|
||
});
|
||
#endif
|
||
}
|
||
if (exit != null)
|
||
{
|
||
UIManager.AddEvent(exit.gameObject, EventTriggerType.PointerClick, (b) =>
|
||
{
|
||
UIManager.ShowConfirm("Quit", "Do you want to quit PowerFun?", () =>
|
||
{
|
||
Application.Quit();
|
||
}, 2);
|
||
});
|
||
}
|
||
#if !(UNITY_IOS || UNITY_ANDROID)
|
||
wxLogin1 = mainContent.Find("FormContainer-Login").Find("Mask").Find("FormContainer-wx1");
|
||
if (wxLogin1 != null)
|
||
{
|
||
UIManager.AddEvent(wxLogin1.Find("Image").gameObject, EventTriggerType.PointerClick, (b) =>
|
||
{
|
||
wxReturnLogin();
|
||
});
|
||
wxBrowser = wxLogin1.Find("Browser (GUI)").GetComponent<Browser>();
|
||
if (wxBrowser != null)
|
||
{
|
||
// wxBrowser.EvalJS(@"Object.defineProperties(Navigator.prototype, {
|
||
// language: {
|
||
// value: 'zh-CN',
|
||
// configurable: false,
|
||
// enumerable: true,
|
||
// writable: false
|
||
// },
|
||
// languages: {
|
||
// value: ['zh-CN','en','zh'],
|
||
// configurable: false,
|
||
// enumerable: true,
|
||
// writable: false
|
||
// }
|
||
//});");
|
||
|
||
wxBrowser.onTextureUpdated += OnUserScan;
|
||
//browser.Zoom = 0.5f;
|
||
//browser.
|
||
}
|
||
|
||
}
|
||
#endif
|
||
wxLogin2 = mainContent.Find("FormContainer-wx2");
|
||
if (wxLogin2 != null)
|
||
{
|
||
UIManager.AddEvent(wxLogin2.Find("return").gameObject, EventTriggerType.PointerClick, (b) =>
|
||
{
|
||
#if !(UNITY_IOS || UNITY_ANDROID)
|
||
wxLogin1.gameObject.SetActive(false);
|
||
wxLogin1.GetComponent<RectTransform>().localPosition = new Vector3(0, -573, 0);
|
||
#endif
|
||
wxLogin2.gameObject.SetActive(false);
|
||
//wxLogin3.gameObject.SetActive(false);
|
||
pageNums = 4;
|
||
//Canvas.ForceUpdateCanvases();
|
||
StartScrollPanel(1);
|
||
});
|
||
wxLogin2.Find("Next").GetComponent<Button>().onClick.AddListener(() =>
|
||
{
|
||
this.goSign(false);
|
||
});
|
||
}
|
||
wxLogin3 = mainContent.Find("FormContainer-wx3");
|
||
if (wxLogin3 != null)
|
||
{
|
||
UIManager.AddEvent(wxLogin3.Find("return").gameObject, EventTriggerType.PointerClick, (b) =>
|
||
{
|
||
if (signContainer.gameObject.activeSelf)
|
||
{
|
||
if (pageNums == 5)
|
||
{
|
||
#if UNITY_ANDROID || UNITY_IOS
|
||
MobileAni(false);
|
||
#endif
|
||
StartScrollPanel(3);
|
||
}
|
||
else if (pageNums == 4)
|
||
{
|
||
#if UNITY_ANDROID || UNITY_IOS
|
||
MobileAni(false);
|
||
#endif
|
||
StartScrollPanel(2);
|
||
}
|
||
else
|
||
{
|
||
StartScrollPanel(1);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
signContainer.gameObject.SetActive(true);
|
||
#if !(UNITY_IOS || UNITY_ANDROID)
|
||
wxLogin1.gameObject.SetActive(false);
|
||
wxLogin1.GetComponent<RectTransform>().localPosition = new Vector3(0, -573, 0);
|
||
#endif
|
||
pageNums = 4;
|
||
//wxLogin3.gameObject.SetActive(false);
|
||
StartScrollPanel(1);
|
||
}
|
||
});
|
||
UIManager.AddEvent(wxLogin3.Find("rememberButton").gameObject, EventTriggerType.PointerClick, (b) =>
|
||
{
|
||
var gou = wxLogin3.Find("rememberButton").Find("Gou").gameObject;
|
||
gou.SetActive(!gou.activeSelf);
|
||
});
|
||
UIManager.AddEvent(wxLogin3.Find("Next").gameObject, EventTriggerType.PointerClick, (b) =>
|
||
{
|
||
goMain(wxLogin3.Find("rememberButton").Find("Gou"));
|
||
});
|
||
}
|
||
imagexf = transform.Find("Panel").Find("LoginContainer").Find("Imagexf");
|
||
imagedf = transform.Find("Panel").Find("LoginContainer").Find("Imagedf");
|
||
toolContainer = transform.Find("Panel").Find("ToolContainer");
|
||
if (toolContainer != null)
|
||
{
|
||
UIManager.AddEvent(toolContainer.Find("Setting").gameObject, EventTriggerType.PointerClick, (b) =>
|
||
{
|
||
UIManager.ShowSettingModal();
|
||
});
|
||
//toolContainer.Find("Setting").GetComponent<Button>().onClick.AddListener(() =>
|
||
//{
|
||
// UIManager.ShowSettingModal();
|
||
//});
|
||
UIManager.AddEvent(toolContainer.Find("Msg").gameObject, EventTriggerType.PointerClick, (b) =>
|
||
{
|
||
UIManager.ShowNewsModal();
|
||
});
|
||
//toolContainer.Find("Msg").GetComponent<Button>().onClick.AddListener(() =>
|
||
//{
|
||
// UIManager.ShowNewsModal();
|
||
//});
|
||
}
|
||
if (userInfos.Count == 0) goLoginImmediately();
|
||
formDict = new Dictionary<string, Selectable>()
|
||
{
|
||
{"Phone",loginForm.email },
|
||
{"Pwd",loginForm.password },
|
||
};
|
||
#if !(UNITY_ANDROID || UNITY_IOS)
|
||
loginForm.email.onEndEdit.AddListener(async (s) =>
|
||
{
|
||
if (!string.IsNullOrEmpty(s) && avatarName!=s)
|
||
{
|
||
var r = await ConfigHelper.userApi.GetHeadImg(s);
|
||
if (!string.IsNullOrEmpty(r))
|
||
{
|
||
Utils.DisplayImage(loginContainer.Find("Avatar").GetComponent<RawImage>(), r);
|
||
avatarName = s;
|
||
}
|
||
else
|
||
{
|
||
loginContainer.Find("Avatar").GetComponent<RawImage>().texture = avatar;
|
||
}
|
||
}
|
||
});
|
||
#endif
|
||
signFormDict = new Dictionary<string, Selectable>
|
||
{
|
||
{ "Phone",signForm.email},
|
||
{ "Captcha",signForm.captcha},
|
||
{ "Pwd",signForm.password},
|
||
{ "CPwd",signForm.cpassword},
|
||
{ "Years",signForm.years},
|
||
{ "Months",signForm.months},
|
||
{ "Days",signForm.days},
|
||
};
|
||
avatar = Resources.Load<Texture>("Images/New Account");
|
||
#if UNITY_ANDROID || UNITY_IOS
|
||
transform.Find("Version").GetComponent<Text>().text = $"V{App.AppVersion}";
|
||
#else
|
||
transform.Find("Panel").Find("Version").GetComponent<Text>().text = $"V{App.AppVersion}";
|
||
#endif
|
||
}
|
||
|
||
public void Test(string key)
|
||
{
|
||
Debug.Log(key);
|
||
}
|
||
async void Init()
|
||
{
|
||
|
||
Debug.Log(535);
|
||
UIManager.Instance.ModalsPanel = this.transform.Find("ModalPanel").GetComponent<PFUIPanel>();
|
||
userInfos = UIManager.Instance.userInfos;
|
||
App.DefaultRotateTexture = Utils.ReadTextureFromPlayerPrefs("rotateImage");
|
||
App.firstEnter = PlayerPrefs.GetInt("firstEnter");
|
||
PlayerPrefs.SetInt("firstEnter", 1);
|
||
var notifyId = PlayerPrefs.GetInt("notifyId");
|
||
|
||
var r = await ConfigHelper.userApi.GetNotify();
|
||
if (r.result)
|
||
{
|
||
#if !(UNITY_ANDROID || UNITY_IOS)
|
||
//#if !UNITY_EDITOR
|
||
var ver = r.data.Value<JObject>("Version").ToObject<UpdateModel>();
|
||
if (ver != null && ver.HasUpdate)
|
||
{
|
||
App.UpdateObject = ver;
|
||
Debug.Log(Application.persistentDataPath + "/PowerFun.exe");
|
||
UIManager.ShowDownloadModal();
|
||
}
|
||
//#endif
|
||
App.notifyContent = r.data.Value<string>("Content");
|
||
|
||
if (r.data.Value<int>("Id") != notifyId)//r.data.Value<int>("Id") != notifyId
|
||
{
|
||
UIManager.ShowNewsModal();
|
||
PlayerPrefs.SetInt("notifyId", r.data.Value<int>("Id"));
|
||
}
|
||
#else
|
||
var rr = await ConfigHelper.userApi.GetVersions();
|
||
if (rr.result)
|
||
{
|
||
#if UNITY_ANDROID
|
||
var info = rr.data.Value<JObject>("UnityApk");
|
||
#elif UNITY_IOS
|
||
var info = rr.data.Value<JObject>("UnityIos");
|
||
#endif
|
||
if (Utils.isUpdate(App.AppVersion,info.Value<string>("Version"))) return;
|
||
}
|
||
Debug.Log(notifyId);
|
||
var ver = r.data.Value<JObject>("Version").ToObject<UpdateModel>();
|
||
if (ver.UpdateLog.Count + 1 != notifyId) //ver.UpdateLog.Count != notifyId
|
||
{
|
||
var log = ver.UpdateLog.FirstOrDefault();
|
||
if (log != null)
|
||
{
|
||
App.notifyContent = log.Desc;
|
||
}
|
||
else
|
||
{
|
||
App.notifyContent = r.data.Value<string>("Content");
|
||
}
|
||
PlayerPrefs.SetInt("notifyId", ver.UpdateLog.Count + 1);
|
||
UIManager.ShowNewsModal();
|
||
}
|
||
|
||
#endif
|
||
}
|
||
GetRotateImage();
|
||
}
|
||
|
||
async void GetRotateImage()
|
||
{
|
||
if (!App.TextureCache.ContainsKey("rotateImage"))
|
||
{
|
||
#if UNITY_IOS || UNITY_ANDROID
|
||
StartCoroutine(Utils.StartLocation(async loc =>
|
||
{
|
||
App.latitude = loc.latitude;
|
||
App.longitude = loc.longitude;
|
||
var i = await ConfigHelper.thirdPartApi.GetMapImage(loc.latitude,loc.longitude);
|
||
var t = new Texture2D(4, 4,TextureFormat.ASTC_RGB_4x4, false);
|
||
if (t.LoadImage(Utils.StreamToBytes(i)))
|
||
{
|
||
Debug.Log("成功");
|
||
App.TextureCache["rotateImage"] = t;
|
||
Utils.WriteTextureToPlayerPrefs("rotateImage", t);
|
||
}
|
||
}));
|
||
#else
|
||
|
||
var locationInfo = await ConfigHelper.thirdPartApi.GetLocationInfo();
|
||
App.latitude = locationInfo.latitude;
|
||
App.longitude = locationInfo.longitude;
|
||
//if (locationInfo.status == 0)
|
||
//{
|
||
// Debug.Log(locationInfo.address);
|
||
// Utils.DownloadImageToLocal(StartCoroutine,
|
||
// $"https://api.mapbox.com/styles/v1/mapbox/dark-v10/static/{locationInfo.content.point.x},{locationInfo.content.point.y},12.14,0/1280x1280?access_token=pk.eyJ1IjoiYW5keXNqdCIsImEiOiJja2ZhajE5OGwwamRiMnltcW96bHk0ZWFuIn0.GvKanc6UveWSvIjS9HfBPA",
|
||
// "rotateImage");
|
||
//}
|
||
//else
|
||
//{
|
||
// Debug.Log(locationInfo.message);
|
||
//}
|
||
Debug.Log(JsonConvert.SerializeObject(locationInfo));
|
||
var i = await ConfigHelper.thirdPartApi.GetMapImage(locationInfo);
|
||
var t = new Texture2D(2, 2, TextureFormat.DXT5, false);
|
||
if (t.LoadImage(Utils.StreamToBytes(i)))
|
||
{
|
||
Debug.Log("成功");
|
||
App.TextureCache["rotateImage"] = t;
|
||
Utils.WriteTextureToPlayerPrefs("rotateImage", t);
|
||
}
|
||
//Debug.Log(locationInfo.country);
|
||
//Utils.DownloadImageToLocal(StartCoroutine,
|
||
//$"https://api.mapbox.com/styles/v1/mapbox/dark-v10/static/{locationInfo.longitude},{locationInfo.latitude},12.14,0/1280x1280?access_token=pk.eyJ1IjoiYW5keXNqdCIsImEiOiJja2ZhajE5OGwwamRiMnltcW96bHk0ZWFuIn0.GvKanc6UveWSvIjS9HfBPA",
|
||
//"rotateImage");
|
||
#endif
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 执行js 修改微信登录页样式
|
||
/// </summary>
|
||
private void AdjustWxQrCode()
|
||
{
|
||
#if !(UNITY_IOS || UNITY_ANDROID)
|
||
if (App.GetLocalLanguage() == "en")
|
||
{
|
||
wxBrowser.EvalJSCSP(@"
|
||
document.getElementsByClassName('qrcode')[0].style.marginTop = 0;
|
||
document.getElementsByClassName('title')[0].style.display = 'none';
|
||
document.getElementById('wx_default_tip').childNodes[3].innerHTML = `""PowerFun""`;
|
||
document.body.style.background = '#272732';
|
||
document.body.style.overflow = 'hidden';
|
||
document.body.style.transformOrigin = 'top left';
|
||
document.body.style.transform = 'scale(0.85106382978)';
|
||
document.body.style.padding = '0';").Done();
|
||
}
|
||
else
|
||
{
|
||
wxBrowser.EvalJSCSP(@"
|
||
document.getElementsByClassName('qrcode')[0].style.marginTop = 0;
|
||
document.getElementsByClassName('title')[0].style.display = 'none';
|
||
document.getElementById('wx_default_tip').childNodes[1].innerHTML = `请使用微信扫描二维码登录`;
|
||
document.body.style.background = '#272732';
|
||
document.body.style.overflow = 'hidden';
|
||
document.body.style.transformOrigin = 'top left';
|
||
document.body.style.transform = 'scale(0.85106382978)';
|
||
document.body.style.padding = '0';").Done();
|
||
}
|
||
|
||
#endif
|
||
}
|
||
//浏览器加载回调
|
||
|
||
#if !(UNITY_IOS || UNITY_ANDROID)
|
||
private async void OnUserScan()
|
||
{
|
||
if (wxBrowser.Url.Contains("qrconnect"))
|
||
{
|
||
//AdjustWxQrCode();
|
||
}
|
||
var rgx = Regex.Match(wxBrowser.Url, @"https\:\/\/wx.powerfun.com.cn/NoAuth/v1/WxWebLogin\?code=(.*?)&state=(.*?)$");
|
||
var groups = rgx.Groups;
|
||
if (groups.Count == 3)
|
||
{
|
||
//wxBrowser.LoadHTML("<div />");
|
||
var state = groups[2].Value;
|
||
if (state == "unity")
|
||
{
|
||
//wxBrowser.
|
||
//var acjson = await ConfigHelper.thirdPartApi.GetWxAccessToken(groups[1].Value);
|
||
//var infojson = await ConfigHelper.thirdPartApi.GetWxUserInfo(
|
||
// acjson.Value<string>("access_token"), acjson.Value<string>("openid"));
|
||
|
||
//string unionId = wxInfoJson.Value<string>("unionid"),
|
||
// openId = wxInfoJson.Value<string>("openid");
|
||
await goWxLoginWithCode(groups[1].Value, groups[2].Value);
|
||
}
|
||
}
|
||
|
||
}
|
||
#endif
|
||
public async Task goWxLoginWithCode(string code, string state)
|
||
{
|
||
var r = await ConfigHelper.userApi.OnWebWxLoginCheckUnionIdByCode(code,state);
|
||
if (r.result)
|
||
{
|
||
JObject data = JObject.FromObject(r.data);
|
||
if (data.Value<string>("success") != null && data.Value<string>("success") == "False")
|
||
{
|
||
wxInfoJson = data;
|
||
wxLogin2.gameObject.SetActive(true);
|
||
Utils.DisplayImage(wxLogin2.Find("Avatar").GetComponent<RawImage>(),
|
||
wxInfoJson.Value<string>("headimgurl"));
|
||
wxLogin2.Find("NickName").GetComponent<Text>().text = wxInfoJson.Value<string>("nickname");
|
||
wxLogin3.gameObject.SetActive(true);
|
||
Utils.DisplayImage(wxLogin3.Find("Avatar").GetComponent<RawImage>(),
|
||
wxInfoJson.Value<string>("headimgurl"));
|
||
wxLogin3.Find("NickName").GetComponent<Text>().text = wxInfoJson.Value<string>("nickname");
|
||
pageNums = 5;
|
||
//this.goSign();
|
||
StartScrollPanel(2);
|
||
}
|
||
else
|
||
{
|
||
RefreshWx3(data.ToObject<UserResultModel>(), 1);
|
||
wxLogin3.gameObject.SetActive(true);
|
||
//Utils.DisplayImage(StartCoroutine,
|
||
//wxLogin3.Find("Avatar").GetComponent<RawImage>(),
|
||
//wxInfoJson.Value<string>("headimgurl"));
|
||
//wxLogin3.Find("NickName").GetComponent<Text>().text = wxInfoJson.Value<string>("nickname");
|
||
signContainer.gameObject.SetActive(false);
|
||
pageNums = 3;
|
||
MobileAni(true);
|
||
//this.goSign();
|
||
StartScrollPanel(2);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
Utils.showToast(gameObject, r.errMsg);
|
||
}
|
||
}
|
||
private void goThirdNext()
|
||
{
|
||
this.StartScrollPanel(4);
|
||
}
|
||
|
||
private void goThirdPrev()
|
||
{
|
||
this.StartScrollPanel(2);
|
||
}
|
||
|
||
private void OnDestroy()
|
||
{
|
||
|
||
}
|
||
#region 倒计时获取验证码
|
||
int time = 0;
|
||
float timer = 0f;
|
||
bool startCaptcha = false;
|
||
async void GetCaptcha()
|
||
{
|
||
var btn = signPage1.Find("Captcha").Find("BtnGet");
|
||
btn.GetComponent<Button>().enabled = false;
|
||
btn.GetComponent<Button>().interactable = false;
|
||
var btnText = signPage1.Find("Captcha").Find("BtnGet").Find("Text").GetComponent<Text>();
|
||
var Email = signForm.email;
|
||
var r = await ConfigHelper.userApi.GetCaptcha(Email.text);
|
||
//Timer t = new Ti
|
||
if (r.result)
|
||
{
|
||
if (pageNums == 5)
|
||
{
|
||
if (r.data.Value<bool>("isExist"))
|
||
{
|
||
HidePassword();
|
||
}
|
||
else
|
||
{
|
||
ShowPassword(true);
|
||
}
|
||
}
|
||
time = 60;
|
||
btnText.text = $"Again({time})";
|
||
System.Timers.Timer timer = new System.Timers.Timer();
|
||
btn.GetComponent<Button>().enabled = false;
|
||
btn.GetComponent<Button>().interactable = false;
|
||
startCaptcha = true;
|
||
//timer.Interval = 1000;
|
||
//timer.AutoReset = true;
|
||
//timer.Elapsed += new ElapsedEventHandler(CaptchaTimerTick);
|
||
//timer.Enabled = true;
|
||
//btnGet.
|
||
}
|
||
else
|
||
{
|
||
btn.GetComponent<Button>().enabled = true;
|
||
btn.GetComponent<Button>().interactable = true;
|
||
Utils.showToast(gameObject, r.errMsg);
|
||
Utils.SetValidate(signFormDict, r.errFieldMsg);
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
void CaptchaTimerTick()
|
||
{
|
||
timer -= Time.deltaTime;
|
||
if (timer <= 0)
|
||
{
|
||
var btn = signPage1.Find("Captcha").Find("BtnGet");
|
||
var btnText = signPage1.Find("Captcha").Find("BtnGet").Find("Text").GetComponent<Text>();
|
||
btnText.text = $"{App.GetLocalString("Again")}({time--})";
|
||
if (time < 0)
|
||
{
|
||
btnText.text = App.GetLocalString("Get");
|
||
btn.GetComponent<Button>().enabled = true;
|
||
btn.GetComponent<Button>().interactable = true;
|
||
startCaptcha = false;
|
||
//timer.Stop();
|
||
}
|
||
timer += 1.0f;
|
||
}
|
||
}
|
||
|
||
private void goRegPrev()
|
||
{
|
||
signForm.email.text = "";
|
||
signForm.password.text = "";
|
||
signForm.captcha.text = "";
|
||
signForm.cpassword.text = "";
|
||
StartScrollSign(0);
|
||
}
|
||
//0-普通 1-微信
|
||
private async void goRegNext(int signType = 0)
|
||
{
|
||
var Email = signForm.email;
|
||
var Captcha = signForm.captcha;
|
||
var Password = signForm.password;
|
||
var CPassword = signForm.cpassword;
|
||
if (Password.text != CPassword.text)
|
||
{
|
||
Utils.SetValidate(signFormDict, JArray.FromObject(new object[]
|
||
{
|
||
new { Field="Pwd"},
|
||
new { Field="CPwd"},
|
||
}));
|
||
Utils.showToast(gameObject, "Two password entries are inconsistent");//两次密码输入不一致
|
||
return;
|
||
}
|
||
//JsonConvert
|
||
JsonResult<object> r = null;
|
||
if (signType == 0)
|
||
{
|
||
r = await ConfigHelper.userApi.Register(Email.text, Password.text, Captcha.text);
|
||
}
|
||
else if (signType == 1)
|
||
{
|
||
r = await ConfigHelper.userApi.OnWebWxLogin(Email.text,
|
||
Captcha.text,
|
||
Password.text,
|
||
wxInfoJson.Value<string>("unionId"),
|
||
wxInfoJson.Value<string>("openId"));
|
||
}
|
||
if (r != null && r.result)
|
||
{
|
||
var u = JObject.FromObject(r.data).ToObject<UserResultModel>();
|
||
RefreshWx3(u, signType);
|
||
LoadInfo();
|
||
StartScrollSign(1);
|
||
}
|
||
else
|
||
{
|
||
var errorList = JArray.FromObject(r.data);
|
||
Utils.SetValidate(signFormDict, errorList);
|
||
Utils.showToast(gameObject, r.errMsg);
|
||
}
|
||
}
|
||
|
||
async void goRegNextWithoutPass()
|
||
{
|
||
var Email = signForm.email;
|
||
var Captcha = signForm.captcha;
|
||
var r = await ConfigHelper.userApi.OnWebWxLogin(Email.text,
|
||
Captcha.text,
|
||
"",
|
||
wxInfoJson.Value<string>("unionId"),
|
||
wxInfoJson.Value<string>("openId"));
|
||
if (r.result)
|
||
{
|
||
var u = JObject.FromObject(r.data).ToObject<UserResultModel>();
|
||
RefreshWx3(u, 1);
|
||
MobileAni(true);
|
||
StartScrollPanel(4);
|
||
}
|
||
else
|
||
{
|
||
Utils.showToast(gameObject, r.errMsg);
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 重置密码逻辑
|
||
/// </summary>
|
||
async void goResetPassword()
|
||
{
|
||
var Email = signForm.email;
|
||
var Captcha = signForm.captcha;
|
||
var Password = signForm.password;
|
||
var CPassword = signForm.cpassword;
|
||
if (Password.text != CPassword.text)
|
||
{
|
||
Utils.SetValidate(signFormDict, JArray.FromObject(new object[]
|
||
{
|
||
new { Field="Pwd"},
|
||
new { Field="CPwd"},
|
||
}));
|
||
Utils.showToast(gameObject, "Two password entries are inconsistent");//两次密码输入不一致
|
||
return;
|
||
}
|
||
var r = await ConfigHelper.userApi.ResetPassword(Email.text, Captcha.text, Password.text);
|
||
if (r.result)
|
||
{
|
||
Utils.showToast(gameObject, "Success", type: 1);
|
||
goLoginReturn2();
|
||
}
|
||
else
|
||
{
|
||
Utils.showToast(gameObject, r.errMsg);
|
||
}
|
||
}
|
||
void RefreshWx3(UserResultModel data, int type)
|
||
{
|
||
Utils.DisplayHead(wxLogin3.Find("Avatar").GetComponent<RawImage>(),
|
||
data.WxHeadImg);
|
||
wxLogin3.Find("Wx").gameObject.SetActive(type == 1);
|
||
wxLogin3.Find("NickName").GetComponent<Text>().text = data.Nickname;
|
||
userResult = data;
|
||
App.CurrentUser = data;
|
||
}
|
||
|
||
void MobileAni(bool flag)
|
||
{
|
||
#if UNITY_ANDROID || UNITY_IOS
|
||
if (flag)
|
||
{
|
||
//顯示pf
|
||
imagedf.GetComponent<Image>().DOFade(1, 0.3f);
|
||
imagexf.GetComponent<Image>().DOFade(1, 0.3f);
|
||
LoginBg.GetComponent<RectTransform>().DOSizeDelta(new Vector2(354, 300), 0.3f);
|
||
LoginBg.GetComponent<RectTransform>().DOLocalMoveY(-35, 0.3f);
|
||
}
|
||
else
|
||
{
|
||
imagedf.GetComponent<Image>().DOFade(0, .3f);
|
||
imagexf.GetComponent<Image>().DOFade(0, .3f);
|
||
LoginBg.GetComponent<RectTransform>().DOSizeDelta(new Vector2(354, 370), .3f);
|
||
LoginBg.GetComponent<RectTransform>().DOLocalMoveY(0, .3f);
|
||
}
|
||
#endif
|
||
}
|
||
|
||
/// <summary>
|
||
/// 去最后一页准备进入主场景
|
||
/// </summary>
|
||
void goRegEnd()
|
||
{
|
||
if (!UpdateInfo()) return;
|
||
#if UNITY_ANDROID || UNITY_IOS
|
||
MobileAni(true);
|
||
#endif
|
||
if (pageNums == 5)
|
||
{
|
||
this.StartScrollPanel(4);
|
||
}
|
||
else
|
||
{
|
||
this.StartScrollPanel(3);
|
||
}
|
||
//throw new NotImplementedException();
|
||
}
|
||
/// <summary>
|
||
/// 加载信息
|
||
/// </summary>
|
||
void LoadInfo()
|
||
{
|
||
var _days = signForm.days.GetComponent<PFUIDropdown>();
|
||
var _months = signForm.months.GetComponent<PFUIDropdown>();
|
||
var _years = signForm.years.GetComponent<PFUIDropdown>();
|
||
|
||
var _genders = signForm.genders.GetComponent<PFUIDropdown>();
|
||
var _countrys = signForm.countrys.GetComponent<PFUIDropdown>();
|
||
var _units = signForm.units.GetComponent<PFUIDropdown>();
|
||
var _weight = signForm.weight.GetComponent<PFUIInputField>();
|
||
var _height = signForm.height.GetComponent<PFUIInputField>();
|
||
if (userResult.Birthday.HasValue)
|
||
{
|
||
_days.SelectValue(userResult.Birthday.Value.Day.ToString());
|
||
_months.SelectValue(userResult.Birthday.Value.Month.ToString());
|
||
_years.SelectValue(userResult.Birthday.Value.Year.ToString());
|
||
}
|
||
_genders.SelectIndex(userResult.Sex - 1);
|
||
_countrys.SelectIndex(UIManager.Instance.loginRegOptions.GetCountryIndexByName(userResult.Country));
|
||
_units.SelectIndex(userResult.Unit);
|
||
_weight.Text = userResult.Weight.ToString();
|
||
_height.Text = userResult.Height.ToString();
|
||
}
|
||
/// <summary>
|
||
/// 注册页2 修改信息
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
bool UpdateInfo()
|
||
{
|
||
if (userResult == null) return false;
|
||
var _days = signForm.days.GetComponent<PFUIDropdown>();
|
||
var _months = signForm.months.GetComponent<PFUIDropdown>();
|
||
var _years = signForm.years.GetComponent<PFUIDropdown>();
|
||
var _genders = signForm.genders.GetComponent<PFUIDropdown>();
|
||
var _countrys = signForm.countrys.GetComponent<PFUIDropdown>();
|
||
var _units = signForm.units.GetComponent<PFUIDropdown>();
|
||
var _weight = signForm.weight.GetComponent<PFUIInputField>();
|
||
var _height = signForm.height.GetComponent<PFUIInputField>();
|
||
if (signForm.years.value != -1 && signForm.months.value != -1 && signForm.days.value != -1)
|
||
{
|
||
userResult.Birthday = new DateTime(int.Parse(_years.SelectedItem), int.Parse(_months.SelectedItem), int.Parse(_days.SelectedItem));
|
||
}
|
||
else
|
||
{
|
||
Utils.SetValidate(signFormDict, JArray.FromObject(new object[]
|
||
{
|
||
new { Field = "Years", ErrMsg = "" },
|
||
new { Field = "Months", ErrMsg = "" },
|
||
new { Field = "Days", ErrMsg = "" }
|
||
}));
|
||
Utils.showToast(gameObject, "Please select birthday");//请选择生日
|
||
return false;
|
||
}
|
||
userResult.Sex = _genders.SelectedIndex + 1;
|
||
userResult.Country = UIManager.Instance.loginRegOptions.GetCountryName(_countrys.SelectedIndex);
|
||
userResult.Unit = _units.SelectedIndex;
|
||
userResult.Weight = double.Parse(_weight.Text);
|
||
userResult.Height = int.Parse(_height.Text);
|
||
if (string.IsNullOrEmpty(userResult.Nickname))
|
||
{
|
||
userResult.Nickname = userResult.Phone;
|
||
}
|
||
var r = ConfigHelper.userApi.Update(userResult, out string cookie, "");
|
||
return r.result;
|
||
//userResult.Birthday.v
|
||
}
|
||
/// <summary>
|
||
/// 微信2/注册返回登录
|
||
/// </summary>
|
||
private void goLoginReturn2()
|
||
{
|
||
#if UNITY_ANDROID || UNITY_IOS
|
||
MobileAni(true);
|
||
#endif
|
||
if (wxLogin2.gameObject.activeSelf) wxLogin2.gameObject.SetActive(false);
|
||
//if (wxLogin3.gameObject.activeSelf) wxLogin3.gameObject.SetActive(false);
|
||
pageNums = 4;
|
||
#if !(UNITY_ANDROID || UNITY_IOS)
|
||
if (wxLogin1.transform.localPosition.y == 0)
|
||
{
|
||
wxReturnLogin();
|
||
}
|
||
#else
|
||
transform.GetComponent<LoginControllerMobile>().HideThirdLoginPage();
|
||
#endif
|
||
Canvas.ForceUpdateCanvases();
|
||
this.StartScrollPanel(1);
|
||
}
|
||
#if !(UNITY_IOS || UNITY_ANDROID)
|
||
void wxReturnLogin()
|
||
{
|
||
wxLock = true;
|
||
wxBrowser.LoadHTML("<div/>");
|
||
//wxBrowser.Url = "chrome://version/";
|
||
wxLogin1.DOLocalMoveY(-573, 0.3f).onComplete = () =>
|
||
{
|
||
wxLock = false;
|
||
wxLogin1.gameObject.SetActive(false);
|
||
};
|
||
}
|
||
#endif
|
||
/// <summary>
|
||
/// 立刻跳到登录页并且返回按钮强行失效
|
||
/// </summary>
|
||
private void goLoginImmediately()
|
||
{
|
||
#if !(UNITY_IOS || UNITY_ANDROID)
|
||
imagedf.localPosition = new Vector3(-580, -34, 0);
|
||
imagexf.localPosition = new Vector3(0, -669, 0);
|
||
LoginBg.localPosition = Vector3.zero;
|
||
LoginBg.GetComponent<RectTransform>().sizeDelta = new Vector2(360, 573);
|
||
#endif
|
||
var scrollValue = 1f / (pageNums - 1);
|
||
var value = 1 * scrollValue;
|
||
scrollPanel.horizontalNormalizedPosition = value;
|
||
loginContainer.Find("returnQuick").GetComponent<Button>().gameObject.SetActive(false);
|
||
}
|
||
/// <summary>
|
||
/// 返回快速登录页
|
||
/// </summary>
|
||
void ReturnQuick()
|
||
{
|
||
#if !(UNITY_IOS || UNITY_ANDROID)
|
||
if (imagexf != null)
|
||
{
|
||
imagexf.DOLocalMoveY(-575, 0.3f);
|
||
}
|
||
if (imagedf != null)
|
||
{
|
||
imagedf.DOLocalMoveY(-128, 0.3f);
|
||
}
|
||
if (LoginBg != null)
|
||
{
|
||
LoginBg.GetComponent<RectTransform>().DOSizeDelta(new Vector2(360, 385), 0.3f);
|
||
LoginBg.GetComponent<RectTransform>().DOLocalMoveY(-94, 0.3f);
|
||
}
|
||
#endif
|
||
this.StartScrollPanel(0);
|
||
}
|
||
/// <summary>
|
||
/// 去登录页
|
||
/// </summary>
|
||
/// <param name="noReturn"></param>
|
||
public void goLogin(bool noReturn = false)
|
||
{
|
||
#if !(UNITY_IOS || UNITY_ANDROID)
|
||
if (imagexf != null)
|
||
{
|
||
imagexf.DOLocalMoveY(-669, 0.3f);
|
||
}
|
||
if (imagedf != null)
|
||
{
|
||
imagedf.DOLocalMoveY(-34, 0.3f);
|
||
}
|
||
if (LoginBg != null)
|
||
{
|
||
LoginBg.GetComponent<RectTransform>().DOSizeDelta(new Vector2(360, 573), 0.3f);
|
||
LoginBg.GetComponent<RectTransform>().DOLocalMoveY(0, 0.3f);
|
||
}
|
||
#endif
|
||
//DOTween.To(() => o, x => o = x, t, 0.3f);
|
||
this.StartScrollPanel(1);
|
||
if (noReturn)
|
||
{
|
||
loginContainer.Find("returnQuick").GetComponent<Button>().gameObject.SetActive(false);
|
||
}
|
||
}
|
||
|
||
|
||
void HidePassword()
|
||
{
|
||
signPage1.Find("Password").gameObject.SetActive(false);
|
||
signPage1.Find("CPassword").gameObject.SetActive(false);
|
||
UIManager.RemoveEvent(signPage1.Find("signThird").gameObject);
|
||
UIManager.AddEvent(signPage1.Find("signThird").gameObject, EventTriggerType.PointerClick, (b) =>
|
||
{
|
||
goRegNextWithoutPass();
|
||
});
|
||
//signPage1.Find("signThird").GetComponent<Button>().onClick.RemoveAllListeners();
|
||
//signPage1.Find("signThird").GetComponent<Button>().onClick.AddListener(goRegNextWithoutPass);
|
||
}
|
||
|
||
|
||
void ShowPassword(bool ignoreEmail = false)
|
||
{
|
||
if (!ignoreEmail)
|
||
{
|
||
signForm.email.text = "";
|
||
}
|
||
signForm.password.text = "";
|
||
signForm.captcha.text = "";
|
||
signForm.cpassword.text = "";
|
||
signPage1.Find("Password").gameObject.SetActive(true);
|
||
signPage1.Find("CPassword").gameObject.SetActive(true);
|
||
UIManager.RemoveEvent(signPage1.Find("signThird").gameObject);
|
||
UIManager.AddEvent(signPage1.Find("signThird").gameObject, EventTriggerType.PointerClick, (b) =>
|
||
{
|
||
goRegNext(1);
|
||
});
|
||
//signPage1.Find("signThird").GetComponent<Button>().onClick.RemoveAllListeners();
|
||
//signPage1.Find("signThird").GetComponent<Button>().onClick.AddListener(() => { ; });
|
||
}
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
/// <param name="isAccount"></param>
|
||
/// <param name="type">0 注册 1 忘记密码</param>
|
||
void goSign(bool isAccount = true, int type = 0)
|
||
{
|
||
#if UNITY_ANDROID || UNITY_IOS
|
||
MobileAni(false);
|
||
#endif
|
||
if (!isAccount)
|
||
{
|
||
pageNums = 5;
|
||
//wxLogin2.gameObject.SetActive(false);
|
||
signPage1.Find("next").gameObject.SetActive(false);
|
||
signPage1.Find("BtnModiPass").gameObject.SetActive(false);
|
||
#if !(UNITY_ANDROID || UNITY_IOS)
|
||
signPage1.Find("previousThird").gameObject.SetActive(true);
|
||
#endif
|
||
signPage1.Find("signThird").gameObject.SetActive(true);
|
||
ShowPassword();
|
||
this.StartScrollPanel(3);
|
||
this.StartScrollSign(0);
|
||
}
|
||
else
|
||
{
|
||
if (type == 0)
|
||
{
|
||
pageNums = 4;
|
||
signContainer.Find("signText").GetComponent<Text>().text = App.GetLocalString("SIGN UP");
|
||
wxLogin2.gameObject.SetActive(false);
|
||
signPage1.Find("next").gameObject.SetActive(true);
|
||
signPage1.Find("BtnModiPass").gameObject.SetActive(false);
|
||
signPage1.Find("previousThird").gameObject.SetActive(false);
|
||
signPage1.Find("signThird").gameObject.SetActive(false);
|
||
ShowPassword();
|
||
this.StartScrollPanel(2);
|
||
this.StartScrollSign(0);
|
||
}
|
||
else
|
||
{
|
||
pageNums = 4;
|
||
signContainer.Find("signText").GetComponent<Text>().text = App.GetLocalString("RESET PASSWORD");
|
||
wxLogin2.gameObject.SetActive(false);
|
||
signPage1.Find("next").gameObject.SetActive(false);
|
||
signPage1.Find("BtnModiPass").gameObject.SetActive(true);
|
||
signPage1.Find("previousThird").gameObject.SetActive(false);
|
||
signPage1.Find("signThird").gameObject.SetActive(false);
|
||
ShowPassword();
|
||
this.StartScrollPanel(2);
|
||
this.StartScrollSign(0);
|
||
}
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 登录/注册完成,去首页
|
||
/// </summary>
|
||
/// <param name="gou"></param>
|
||
void goMain(Transform gou)
|
||
{
|
||
#if (UNITY_ANDROID || UNITY_IOS)
|
||
StartCoroutine("Loading");
|
||
#endif
|
||
var data = userResult;
|
||
if (data == null) return;
|
||
//ConfigHelper.CurrentUser = res.data;
|
||
if (gou != null && gou.gameObject.activeSelf)
|
||
{
|
||
SaveInfo(data);
|
||
//PlayerPrefs.SetString("UserInfos", JsonConvert.SerializeObject(userInfos));
|
||
}
|
||
else
|
||
{
|
||
var u = userInfos.Find(x => x.Id == data.Id);
|
||
if (u != null)
|
||
{
|
||
userInfos.Remove(u);
|
||
}
|
||
UIManager.Instance.userInfos = userInfos;
|
||
UIManager.Instance.userInfoIndex = 0;
|
||
}
|
||
App.CurrentUser = data;
|
||
App.RideSetting.Sensitivity = data.Sensitivity;
|
||
//查询我参加的比赛
|
||
UIManager.UpdateJoinCompetition();
|
||
//SceneManager.LoadSceneAsync("MainScene");
|
||
StartCoroutine("LoadMain");
|
||
}
|
||
|
||
private IEnumerator Loading()
|
||
{
|
||
yield return null;
|
||
DontDestroyOnLoad(loadingPanel);
|
||
Utils.showLoadingExtension(loadingPanel);
|
||
}
|
||
|
||
private IEnumerator LoadMain()
|
||
{
|
||
yield return new WaitForSeconds(1f);
|
||
SceneManager.LoadSceneAsync("MainScene").completed += QuickLoginUser_completed;
|
||
}
|
||
|
||
private void QuickLoginUser_completed(AsyncOperation obj)
|
||
{
|
||
//Utils.hideLoadingExtension(loadingPanel);
|
||
}
|
||
/// <summary>
|
||
/// 缓存打钩的用户信息
|
||
/// </summary>
|
||
/// <param name="data"></param>
|
||
public void SaveInfo(UserResultModel data)
|
||
{
|
||
var index = userInfos.FindIndex(x => x.Id == data.Id);
|
||
if (index == -1)
|
||
{
|
||
userInfos.Add(new QUserInfo
|
||
{
|
||
Id = data.Id,
|
||
NickName = data.Nickname,
|
||
Avatar = data.WxHeadImg,
|
||
Cookie = data.cookie,
|
||
Phone = data.Phone
|
||
});
|
||
index = userInfos.Count - 1;
|
||
}
|
||
else
|
||
{
|
||
var u = userInfos[index];
|
||
u.Id = data.Id;
|
||
u.NickName = data.Nickname;
|
||
u.Avatar = data.WxHeadImg;
|
||
u.Cookie = data.cookie;
|
||
u.Phone = data.Phone;
|
||
//userInfos.Insert(0, new QUserInfo
|
||
//{
|
||
// Id = data.Id,
|
||
// NickName = data.Nickname,
|
||
// Avatar = data.WxHeadImg,
|
||
// Cookie = data.cookie
|
||
//});
|
||
//userInfos.Remove(u);
|
||
}
|
||
UIManager.Instance.userInfos = userInfos;
|
||
UIManager.Instance.userInfoIndex = index;
|
||
}
|
||
/// <summary>
|
||
/// 登录提交
|
||
/// </summary>
|
||
async void Submit()
|
||
{
|
||
var res = await ConfigHelper.userApi.LoginV1(loginForm.email.text, loginForm.password.text, "");
|
||
//var res = await NoAuthApi.Login(phone.text, pwd.text);
|
||
if (res.result)
|
||
{
|
||
userResult = JObject.FromObject(res.data).ToObject<UserResultModel>();
|
||
goMain(remember.transform.Find("Gou"));
|
||
}
|
||
else
|
||
{
|
||
if (res.data != null)
|
||
{
|
||
var errorList = JArray.FromObject(res.data);
|
||
Utils.SetValidate(formDict, errorList);
|
||
}
|
||
Utils.showToast(gameObject, res.errMsg);
|
||
}
|
||
}
|
||
|
||
// Update is called once per frame
|
||
protected override void Update()
|
||
{
|
||
base.Update();
|
||
//Debug.Log($"{phone.isFocused}, ${pwd != null}, ${Input.GetKeyDown(KeyCode.Tab)}");
|
||
if (Input.GetKeyDown(KeyCode.Tab))
|
||
{
|
||
if (loginForm != null && loginForm.email.isFocused && loginForm.password != null)
|
||
{
|
||
loginForm.password.ActivateInputField();
|
||
}
|
||
if (signForm != null)
|
||
{
|
||
if (signForm.email.isFocused)
|
||
{
|
||
signForm.captcha.ActivateInputField();
|
||
}
|
||
if (signForm.captcha.isFocused)
|
||
{
|
||
signForm.password.ActivateInputField();
|
||
}
|
||
if (signForm.password.isFocused)
|
||
{
|
||
signForm.cpassword.ActivateInputField();
|
||
}
|
||
if (signForm.cpassword.isFocused)
|
||
{
|
||
signForm.email.ActivateInputField();
|
||
}
|
||
}
|
||
}
|
||
if (Input.GetKeyDown(KeyCode.KeypadEnter) || Input.GetKeyDown(KeyCode.Return))
|
||
{
|
||
if (loginForm != null && !string.IsNullOrEmpty(loginForm.email.text) && !string.IsNullOrEmpty(loginForm.password.text))
|
||
{
|
||
Submit();
|
||
}
|
||
}
|
||
if (startCaptcha)
|
||
{
|
||
CaptchaTimerTick();
|
||
}
|
||
|
||
//if (wxLogin1.gameObject.activeInHierarchy)
|
||
//{
|
||
// adjTime += Time.deltaTime;
|
||
// if (adjTime >= 0.5 && wxLogin1.gameObject.activeInHierarchy && startJs)
|
||
// {
|
||
// Debug.Log("在调整");
|
||
// adjTime = 0;
|
||
// AdjustWxQrCode();
|
||
// }
|
||
//}
|
||
}
|
||
private void FixedUpdate()
|
||
{
|
||
goScrollPanel();
|
||
goScrollSign();
|
||
}
|
||
//float adjTime = 0;
|
||
//bool startJs = false;
|
||
#region 主页面滑动逻辑
|
||
private int tmpImdex = 0;
|
||
private int scrollPanelIndex = 2;
|
||
//private float scrollValue = 0.5f;
|
||
private bool startScrollPanel = false;
|
||
private void StartScrollPanel(int index)
|
||
{
|
||
if (startScrollPanel) return;
|
||
scrollPanelIndex = index;
|
||
startScrollPanel = true;
|
||
}
|
||
private int pageNums = 4;
|
||
private void goScrollPanel()
|
||
{
|
||
var index = scrollPanelIndex;
|
||
var scrollValue = 1f / (pageNums - 1);
|
||
var value = index * scrollValue;
|
||
if (scrollPanel != null && startScrollPanel)
|
||
{
|
||
if (scrollPanel.horizontalNormalizedPosition >= value)
|
||
{
|
||
scrollPanel.horizontalNormalizedPosition -= (scrollValue / 10);
|
||
if (scrollPanel.horizontalNormalizedPosition <= value)
|
||
{
|
||
scrollPanel.horizontalNormalizedPosition = value;
|
||
startScrollPanel = false;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
scrollPanel.horizontalNormalizedPosition += (scrollValue / 10);
|
||
if (scrollPanel.horizontalNormalizedPosition >= value)
|
||
{
|
||
scrollPanel.horizontalNormalizedPosition = value;
|
||
startScrollPanel = false;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 注册页面滑动逻辑
|
||
private bool startScrollSign = false;
|
||
private int scrollSignIndex = 0;
|
||
|
||
|
||
private void StartScrollSign(int index)
|
||
{
|
||
if (startScrollSign) return;
|
||
scrollSignIndex = index;
|
||
startScrollSign = true;
|
||
Debug.Log($"{index},{index * 160}");
|
||
if (index == 1)
|
||
{
|
||
if (signForm.years.value != -1) signForm.years.value = 0;
|
||
if (signForm.months.value != -1) signForm.months.value = 0;
|
||
if (signForm.days.value != -1) signForm.days.value = 0;
|
||
if (signForm.countrys.value != -1) signForm.countrys.value = regOptions.countryDefaultValue;
|
||
if (signForm.genders.value != -1) signForm.genders.value = 0;
|
||
if (signForm.units.value != -1) signForm.units.value = 0;
|
||
if (pageNums == 5 && wxInfoJson != null)
|
||
{
|
||
var sex = wxInfoJson.Value<int>("sex");
|
||
if (sex > 0)
|
||
{
|
||
signForm.genders.value = sex - 1;
|
||
}
|
||
var country = wxInfoJson.Value<string>("country");
|
||
signForm.countrys.value = regOptions.GetCountryIndexByCode(country);
|
||
}
|
||
//if (string.IsNullOrEmpty(signForm.weight.text))
|
||
//{
|
||
// signForm.weight.text = "";
|
||
//}
|
||
//if (!string.IsNullOrEmpty(signForm.height.text))
|
||
//{
|
||
// signForm.height.text = "";
|
||
//}
|
||
}
|
||
#if !(UNITY_ANDROID || UNITY_IOS)
|
||
signScrollBar.DOLocalMoveX((index-1) *160, 0.2f);
|
||
#endif
|
||
}
|
||
private void goScrollSign()
|
||
{
|
||
float value = scrollSignIndex;
|
||
if (scrollSign != null && startScrollSign)
|
||
{
|
||
if (scrollSignIndex == 0)
|
||
{
|
||
scrollSign.horizontalNormalizedPosition -= (1f / 10);
|
||
if (scrollSign.horizontalNormalizedPosition <= 0)
|
||
{
|
||
scrollSign.horizontalNormalizedPosition = 0;
|
||
startScrollSign = false;
|
||
|
||
}
|
||
}
|
||
else if (scrollSignIndex == 1)
|
||
{
|
||
scrollSign.horizontalNormalizedPosition += (1f / 10);
|
||
if (scrollSign.horizontalNormalizedPosition >= 1)
|
||
{
|
||
scrollSign.horizontalNormalizedPosition = 1;
|
||
startScrollSign = false;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
#endregion
|
||
}
|