using System.Collections; using System.Text.RegularExpressions; using ET; using UnityEngine; using UI.RoleInfo; using FairyGUI; namespace GFGGame { public class PhoneBindingView : BaseWindow { private UI_PhoneBindingUI _ui; private float countTimeSpeed = 0.000035f; private bool isCountTime = false; private EffectUI _effectUI1; private EffectUI _effectUI2; public override void Dispose() { EffectUIPool.Recycle(_effectUI1); _effectUI1 = null; EffectUIPool.Recycle(_effectUI2); _effectUI2 = null; if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_PhoneBindingUI.PACKAGE_NAME; _ui = UI_PhoneBindingUI.Create(); this.viewCom = _ui.target; this.viewCom.Center(); this.modal = true; viewAnimationType = EnumViewAnimationType.ZOOM_CENTER; _ui.m_btnSure.target.onClick.Add(OnBtnSureClick); _ui.m_btnClose.onClick.Add(Hide); _ui.m_btnSendCode.onClick.Add(() => { if (!Regex.IsMatch(_ui.m_inputPhoneNumber.text.Trim(), // 匹配所有中国大陆手机号(11 位,包括物联网和卫星电话) @"^(?:\+86)?1(?:3\d{3}|4[5-9]\d{2}|5[0-35-9]\d{2}|6[2567]\d{2}|7[0-8]\d{2}|8\d{3}|9[0-35-9]\d{2})\d{6}$")) { PromptController.Instance.ShowFloatTextPrompt("输入的手机号格式有误"); return; } _ui.m_btnSendCode.enabled = false; //在此发送验证码 SecurityHelper.GetMobileVerification(_ui.m_inputPhoneNumber.text, SendCodeType.BindPhone) .Coroutine(); float endTime = Time.time + 60; Timers.inst.Add(1, 0, timerCallback, endTime); timerCallback(endTime); }); AddEffect(); } private void timerCallback(object param) { float endTime = (float)param; float remainTime = endTime - Time.time; if (remainTime <= 0) { _ui.m_btnSendCode.text = "发送验证码"; _ui.m_btnSendCode.enabled = true; Timers.inst.Remove(timerCallback); } else { _ui.m_btnSendCode.text = (int)remainTime + "s后重发"; } } protected override void OnShown() { base.OnShown(); _ui.m_inputPhoneNumber.text = ""; _ui.m_txtCode.text = ""; isCountTime = false; } protected override void OnHide() { base.OnHide(); Timers.inst.Remove(timerCallback); } private async void OnBtnSureClick() { if (!string.IsNullOrEmpty(ActivityDataManager.Instance.PhoneNumber)) { PromptController.Instance.ShowFloatTextPrompt(string.Format("号码{0}已绑定!", ActivityDataManager.Instance.PhoneNumber)); Hide(); } S2C_BindMobilePhoneNumber res = await SecurityHelper.BindMobilePhoneNumber(_ui.m_inputPhoneNumber.text, _ui.m_txtCode.text); if (res is { Error: ErrorCode.ERR_Success }) { PromptController.Instance.ShowFloatTextPrompt("绑定成功!"); ActivityDataManager.Instance.PhoneNumber = res.PhoneNumber; Hide(); EventAgent.DispatchEvent(ConstMessage.PhoneChange); } else { ErrorCodeController.Handler(res.Error); } } private void AddEffect() { //邊框左上角特效 _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderLeftTop, "ui_Activity", "Com_window_L_up"); //邊框右下角特效 _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holderRightDowm, "ui_Activity", "Com_window_R_Down"); } } }