using System; using Shared; using HDL_ON.UI.CSS; using System.Threading; using System.Text.RegularExpressions; using HDL_ON.DAL.Server; namespace HDL_ON.UI { /// /// 新绑定或者换绑--手机或者邮箱发送验证码 /// public partial class NewBindAccountPage : FrameLayout { FrameLayout bodyView; Button btnBind; EditText etContent; /// /// /// Action action; /// /// 标题ID /// int titleId; /// /// 是否手机 /// bool isPhone; /// /// 是否换绑 /// bool isModifyBind; /// /// 手机区号 /// string phoneZoneCode = "86"; /// /// /// public NewBindAccountPage() { bodyView = this; } /// /// LoadPage /// /// /// 是否绑定手机 public void LoadPage(Action act, bool isPhone = false, bool isModifyBind = false) { action = act; this.isPhone = isPhone; this.isModifyBind = isModifyBind; if (isModifyBind) { //修改绑定 titleId = isPhone ? StringId.EntryNewPhone : StringId.EntryNewEmail; } else { //新绑定 titleId = isPhone ? StringId.BoundMobileInfo : StringId.BoundEmailInfo; } bodyView.BackgroundColor = CSS_Color.BackgroundColor; new TopViewDiv(bodyView, Language.StringByID(titleId)).LoadTopView(); if (isPhone) { AddPhoneFrameLayout(); } else { AddEmailFrameLayout(); } //点击获取验证码 LoadEvent_GetVerification(btnBind); } /// /// /// void AddPhoneFrameLayout() { #region 如果是手机 //手机国家区号选择按钮 ListCellView codeView = new ListCellView() { Y = Application.GetRealHeight(64), }; bodyView.AddChidren(codeView); //跳转国家区号选择界面 Action selectAction = () => { JLCountrycode.CountryCodeView.Current.Show((countryName, code) => { if (!string.IsNullOrEmpty(code)) { phoneZoneCode = code; codeView.BtnSubtitle.Text = "+" + phoneZoneCode; } }); }; codeView.GoAction = selectAction; codeView.BtnTilte.Text = Language.StringByID(StringId.CountryOrRegion); codeView.BtnSubtitle.Text = "+" + phoneZoneCode; //手机号输入框 FrameLayout rowView = new FrameLayout() { Y = codeView.Bottom, Height = Application.GetRealHeight(50), BackgroundColor = CSS_Color.MainBackgroundColor, }; bodyView.AddChidren(rowView); //绑定手机号 Button btnTitle = new Button() { X = Application.GetRealWidth(16), Width = Application.GetRealWidth(180), TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.SubheadingFontSize, TextAlignment = TextAlignment.CenterLeft, TextID = titleId, }; rowView.AddChidren(btnTitle); etContent = new EditText() { Width = Application.GetRealWidth(359), TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.TextFontSize, TextAlignment = TextAlignment.CenterRight, Foucs = true }; rowView.AddChidren(etContent); btnBind = new Button() { Y = Application.GetRealHeight(213), Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(220), Height = Application.GetRealWidth(44), BackgroundColor = CSS_Color.MainColor, TextAlignment = TextAlignment.Center, TextColor = CSS_Color.MainBackgroundColor, TextID = StringId.GetVerificationCode, TextSize = CSS_FontSize.SubheadingFontSize, IsBold = true, Radius = (uint)Application.GetRealWidth(22), BorderColor = 0x00000000, BorderWidth = 0, }; bodyView.AddChidren(btnBind); #endregion } /// /// /// void AddEmailFrameLayout() { #region 如果是邮箱 FrameLayout rowView = new FrameLayout() { Y = Application.GetRealHeight(72), Height = Application.GetRealHeight(50), BackgroundColor = CSS_Color.MainBackgroundColor, }; bodyView.AddChidren(rowView); //绑定邮箱 Button btnTitle = new Button() { X = Application.GetRealWidth(16), Width = Application.GetRealWidth(180), TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.SubheadingFontSize, TextAlignment = TextAlignment.CenterLeft, TextID = titleId, }; rowView.AddChidren(btnTitle); etContent = new EditText() { Width = Application.GetRealWidth(359), TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.TextFontSize, TextAlignment = TextAlignment.CenterRight, Foucs = true }; rowView.AddChidren(etContent); btnBind = new Button() { Y = Application.GetRealHeight(213), Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(220), Height = Application.GetRealWidth(44), BackgroundColor = CSS_Color.MainColor, TextAlignment = TextAlignment.Center, TextColor = CSS_Color.MainBackgroundColor, TextID = StringId.GetVerificationCode, TextSize = CSS_FontSize.SubheadingFontSize, IsBold = true, Radius = (uint)Application.GetRealWidth(22), BorderColor = 0x00000000, BorderWidth = 0, }; bodyView.AddChidren(btnBind); #endregion } } //-------------------------------------------- public partial class NewBindAccountPage { /// /// 点击获取验证码 /// void LoadEvent_GetVerification(Button button) { button.MouseUpEventHandler = (sender, e) => { if (button.Text == Language.StringByID(StringId.GetVerificationCode)) { Application.HideSoftInput(); var account = etContent.Text.Trim(); //如果是换绑检测是否相同帐号 if (isModifyBind) { if (isPhone) { if(account == UserInfo.Current.userMobileInfo) { //提示换绑帐号相同 Utlis.ShowTip(Language.StringByID(StringId.EntryNewPhone)); return; } } else { if (account == UserInfo.Current.userEmailInfo) { //提示换绑帐号相同 Utlis.ShowTip(Language.StringByID(StringId.EntryNewEmail)); return; } } } #region 正则表达式 //1.检测账号是否合法 if (!isPhone) { if (!Utlis.CheckEmail(account)) { Utlis.ShowTip(Language.StringByID(StringId.PlsEntryCorrectEmailAddress)); return; } } else { if (!Utlis.CheckPhoneNumber(account, phoneZoneCode)) { Utlis.ShowTip(Language.StringByID(StringId.PlsEntryCorrectMobilNeumber)); return; } } #endregion //加载Loading效果 var waitPage = new Loading(); bodyView.AddChidren(waitPage); waitPage.Start(Language.StringByID(StringId.PleaseWait)); int time = 0; //2.检验通过 new Thread(() => { try { //2.2 获取验证码 ResponsePackNew resultObj; if (!isPhone)//邮箱 { resultObj = new HttpServerRequest().VerificationCodeSend(VerifyType.REGISTER_USER_SYSTEM, account); } else { resultObj = new HttpServerRequest().VerificationCodeSend(VerifyType.REGISTER_USER_SYSTEM, account, true, phoneZoneCode); } if (resultObj.Code != StateCode.SUCCESS) { // 提示错误 IMessageCommon.Current.ShowErrorInfoAlter(resultObj.Code); } else { if (time == 0) { time = 60; new Thread(() => { while (time > 0) { time--; Application.RunOnMainThread(() => { button.Text = time.ToString() + "s"; }); Thread.Sleep(1000); } Application.RunOnMainThread(() => { button.IsSelected = true; button.TextID = StringId.GetVerificationCode; button.BackgroundColor = CSS_Color.MainColor; time = 0; }); }) { IsBackground = true }.Start(); } Application.RunOnMainThread(() => { button.BackgroundColor = CSS_Color.PromptingColor1; var vcp = new NewBindVerificationCodePage(); vcp.PhoneZoneCode = phoneZoneCode; MainPage.BasePageView.AddChidren(vcp); vcp.LoadPage(action, titleId, account, isPhone, time, isModifyBind); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }); } } catch { } finally { Application.RunOnMainThread(() => { if (waitPage != null) { waitPage.RemoveFromParent(); waitPage = null; } }); } }) { IsBackground = true }.Start(); } }; } } }