using System;
|
using Shared.Common;
|
using Shared.Phone.UserView;
|
using Shared.Phone.Device.CommonForm;
|
using Shared.Phone.UserCenter;
|
|
namespace Shared.Phone.Login
|
{
|
/// <summary>
|
/// 登录界面
|
/// </summary>
|
public class AccountLogin : FrameLayout
|
{
|
#region ◆ 变量____________________________
|
/// <summary>
|
/// 背景视图
|
/// </summary>
|
private FrameLayout midFrameLayout;
|
/// <summary>
|
/// 手机邮箱
|
/// </summary>
|
private PhoneEmailForm phoneEmailForm;
|
/// <summary>
|
/// phoneRowForm
|
/// </summary>
|
private PhoneLoginRowForm phoneRow;
|
/// <summary>
|
/// emailRow
|
/// </summary>
|
private EmailLoginRowForm emailRow;
|
/// <summary>
|
/// phonePwdRow
|
/// </summary>
|
private PwdLoginRowForm phonePwdRow;
|
/// <summary>
|
/// emailPwdRow
|
/// </summary>
|
private PwdLoginRowForm emailPwdRow;
|
|
/// <summary>
|
/// 账号密码fl
|
/// </summary>
|
private FrameLayout accountPwdFL;
|
/// <summary>
|
/// 登录错误提示按钮
|
/// </summary>
|
private Button loginErrorBtn;
|
/// <summary>
|
/// 忘记密码按钮
|
/// </summary>
|
private Button forgotPasswordBtn;
|
/// <summary>
|
/// 登录按钮
|
/// </summary>
|
private Button loginBtn;
|
/// <summary>
|
/// 验证码登录按钮
|
/// </summary>
|
private Button loginByCodeBtn;
|
/// <summary>
|
/// 注册按钮
|
/// </summary>
|
private Button registerBtn;
|
/// <summary>
|
/// wechat
|
/// </summary>
|
private Button wechatBtn;
|
/// <summary>
|
/// qq
|
/// </summary>
|
private Button qqBtn;
|
/// <summary>
|
/// 输入的登陆账号(重新登陆时使用)
|
/// </summary>
|
private string oldInputPhone = string.Empty;
|
/// <summary>
|
/// 输入的登陆账号(重新登陆时使用)
|
/// </summary>
|
private string oldInputEmail = string.Empty;
|
|
#endregion
|
|
#region ◆ 构造方法_________________________
|
|
/// <summary>
|
/// 构造方法
|
/// </summary>
|
public AccountLogin()
|
{
|
CommonPage.Instance.IsDrawerLockMode = true;
|
BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
|
Tag = "Login";
|
}
|
|
public override void RemoveFromParent()
|
{
|
base.RemoveFromParent();
|
}
|
|
#endregion
|
|
#region ◆ 显示界面_________________________
|
|
/// <summary>
|
/// 显示界面
|
/// </summary>
|
/// <param name="account">Account.</param>
|
/// <param name="password">Password.</param>
|
public void Show(string account = "", string password = "")
|
{
|
if (Config.Instance.IsLogin)
|
{
|
|
}
|
else
|
{
|
LoginViewShow(account);
|
}
|
}
|
|
/// <summary>
|
/// Logins the view show.
|
/// </summary>
|
/// <param name="account">Account.</param>
|
public void LoginViewShow(string account = "")
|
{
|
//设置一下初始值
|
if (account.Contains("@") == true) { this.oldInputEmail = account; }
|
else { this.oldInputPhone = account; }
|
|
#region midFrameLayout
|
midFrameLayout = new FrameLayout()
|
{
|
Width = LayoutParams.MatchParent,
|
Height = Application.GetRealHeight(CommonPage.AppRealHeight),
|
BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
|
};
|
AddChidren(midFrameLayout);
|
#endregion
|
|
#region 布局账户,密码,忘记密码,注册 手机验证码登录
|
|
var logoBG = new Button()
|
{
|
Height = Application.GetRealHeight(619),
|
UnSelectedImagePath = "Account/Logo_loginBG.png"
|
};
|
midFrameLayout.AddChidren(logoBG);
|
|
var phoneEmailBGFL = new FrameLayout()
|
{
|
Y = logoBG.Bottom,
|
Height = Application.GetRealHeight(1921),
|
BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor
|
};
|
midFrameLayout.AddChidren(phoneEmailBGFL);
|
|
var logo = new Button()
|
{
|
Width = Application.GetMinRealAverage(184),
|
Height = Application.GetMinRealAverage(184),
|
Y = Application.GetRealHeight(230),
|
UnSelectedImagePath = "Account/Logo_White.png",
|
Gravity = Gravity.CenterHorizontal
|
};
|
midFrameLayout.AddChidren(logo);
|
|
var logoName = new Button()
|
{
|
Y = logo.Bottom,
|
Height = Application.GetRealHeight(69),
|
Width = Application.GetRealWidth(300),
|
Gravity = Gravity.CenterHorizontal,
|
TextID = R.MyInternationalizationString.AppName,
|
TextColor = ZigbeeColor.Current.GXCTextWhiteColor,
|
TextSize = 16
|
};
|
midFrameLayout.AddChidren(logoName);
|
|
phoneEmailForm = new PhoneEmailForm();
|
phoneEmailForm.Init(midFrameLayout);
|
|
|
//错误提示Btn
|
loginErrorBtn = new Button()
|
{
|
X = Application.GetRealWidth(242),
|
Y = Application.GetRealHeight(740),
|
Width = Application.GetRealWidth(700),
|
Height = Application.GetRealHeight(58),
|
TextColor = ZigbeeColor.Current.GXCTextRed,
|
TextAlignment = TextAlignment.CenterLeft,
|
TextSize = CommonFormResouce.TextSize,
|
IsBold = true
|
};
|
midFrameLayout.AddChidren(loginErrorBtn);
|
|
accountPwdFL = new FrameLayout()
|
{
|
Y = Application.GetRealHeight(801),
|
Height = Application.GetRealHeight(553),
|
Width = Application.GetRealWidth(942),
|
Gravity = Gravity.CenterHorizontal,
|
BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
|
Radius = (uint)Application.GetRealHeight(17)
|
};
|
midFrameLayout.AddChidren(accountPwdFL);
|
|
AddPhoneOrEmailFL(accountPwdFL, "Phone");
|
|
forgotPasswordBtn = new Button()
|
{
|
X = Application.GetRealWidth(CommonPage.AppRealWidth - 115 - 250),
|
Y = Application.GetRealHeight(1198),
|
Width = Application.GetRealWidth(250),
|
Height = Application.GetRealHeight(58),
|
TextID = R.MyInternationalizationString.ForgotPWD_1,
|
TextSize = CommonFormResouce.loginTextSize,
|
TextColor = Shared.Common.ZigbeeColor.Current.GXCTextGrayColor,
|
TextAlignment = TextAlignment.CenterRight
|
};
|
midFrameLayout.AddChidren(forgotPasswordBtn);
|
|
loginBtn = new Button()
|
{
|
Y = Application.GetRealHeight(1293),
|
Width = Application.GetRealWidth(688),
|
Height = Application.GetRealHeight(127),
|
Gravity = Gravity.CenterHorizontal,
|
TextID = R.MyInternationalizationString.Login,
|
TextSize = 16,
|
TextColor = ZigbeeColor.Current.GXCTextGrayColor,
|
SelectedTextColor = ZigbeeColor.Current.GXCTextWhiteColor,
|
SelectedBackgroundColor = ZigbeeColor.Current.GXCButtonBlackSelectedColor,
|
BackgroundColor = ZigbeeColor.Current.GXCButtonUnSelectedColor,
|
Radius = (uint)Application.GetRealHeight(127 / 2),
|
Enable = false,
|
IsBold = true
|
};
|
midFrameLayout.AddChidren(loginBtn);
|
|
loginByCodeBtn = new Button()
|
{
|
X = Application.GetRealWidth(98),
|
Y = Application.GetRealHeight(1466),
|
Width = Application.GetRealWidth(300),
|
Height = Application.GetRealHeight(49),
|
TextID = R.MyInternationalizationString.LoginByCode,
|
TextColor = ZigbeeColor.Current.GXCTextGrayColor,
|
TextAlignment = TextAlignment.CenterLeft,
|
TextSize = CommonFormResouce.loginTextSize
|
};
|
midFrameLayout.AddChidren(loginByCodeBtn);
|
|
registerBtn = new Button()
|
{
|
X = Application.GetRealWidth(738),
|
Y = Application.GetRealHeight(1466),
|
Width = Application.GetRealWidth(244),
|
Height = Application.GetRealHeight(49),
|
TextID = R.MyInternationalizationString.Register,
|
TextColor = ZigbeeColor.Current.GXCTextGrayColor,
|
TextAlignment = TextAlignment.CenterRight,
|
TextSize = CommonFormResouce.loginTextSize
|
};
|
midFrameLayout.AddChidren(registerBtn);
|
|
wechatBtn = new Button
|
{
|
X = Application.GetRealWidth(395),
|
Y = Application.GetRealHeight(1737),
|
Width = Application.GetMinRealAverage(115),
|
Height = Application.GetMinRealAverage(115),
|
UnSelectedImagePath = "Account/Wechat.png",
|
Gravity = Gravity.CenterHorizontal
|
};
|
midFrameLayout.AddChidren(wechatBtn);
|
|
qqBtn = new Button
|
{
|
X = Application.GetRealWidth(567),
|
Y = Application.GetRealHeight(1737),
|
Width = Application.GetMinRealAverage(115),
|
Height = Application.GetMinRealAverage(115),
|
UnSelectedImagePath = "Account/QQ.png"
|
};
|
//midFrameLayout.AddChidren(qqBtn);
|
|
//添加服务协议控件
|
//this.AddServiceAgreementControl(phoneEmailBGFL);
|
|
#endregion
|
|
BindEvent();
|
|
if (account.Contains("@") == true)
|
{
|
SelectPhoneOrEmail_MouseUpEvent(phoneEmailForm.SelectedEmail, null);
|
}
|
}
|
|
#endregion
|
|
#region ◆ 绑定事件_________________________
|
|
/// <summary>
|
/// 绑定按钮事件
|
/// </summary>
|
private void BindEvent()
|
{
|
//选择手机邮箱
|
phoneEmailForm.SelectedPhone.MouseUpEventHandler += SelectPhoneOrEmail_MouseUpEvent;
|
phoneEmailForm.SelectedEmail.MouseUpEventHandler += SelectPhoneOrEmail_MouseUpEvent;
|
//登录事件
|
loginBtn.MouseUpEventHandler += LoginBtnEvent;
|
//短信登录
|
loginByCodeBtn.MouseUpEventHandler += LoginByCode;
|
//注册事件
|
registerBtn.MouseUpEventHandler += Register;
|
//忘记密码
|
forgotPasswordBtn.MouseUpEventHandler += ForgetPWD_MouseUpEvent;
|
//wechat
|
wechatBtn.MouseUpEventHandler += LoginByWechat;
|
//qq
|
qqBtn.MouseUpEventHandler += LoginByQQ;
|
}
|
|
#endregion
|
|
#region ◆ 登录____________________________
|
|
/// <summary>
|
/// 登录事件
|
/// </summary>
|
/// <param name="sender">Sender.</param>
|
/// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param>
|
private void LoginBtnEvent(object sender, MouseEventArgs mouseEventArgs)
|
{
|
//检测隐私协议
|
if (this.CheckPrivacyPolicy() == false)
|
{
|
return;
|
}
|
if (phoneEmailForm.SelectedPhone.IsSelected)
|
{
|
Login(phoneRow.AccountET.Text.Trim(), phonePwdRow.PasswrodET.Text.Trim());
|
}
|
else
|
{
|
Login(emailRow.AccountET.Text.Trim(), emailPwdRow.PasswrodET.Text.Trim());
|
}
|
|
}
|
|
/// <summary>
|
/// 登录
|
/// </summary>
|
/// <param name="accountStr">Account.</param>
|
/// <param name="passwordStr">Password.</param>
|
private void Login(string accountStr, string passwordStr)
|
{
|
//Application.RunOnMainThread( () =>
|
//{
|
Action action = async () =>
|
{
|
try
|
{
|
if (CheckAccount(accountStr) == false)
|
{
|
return;
|
}
|
|
CommonPage.Loading.Start(Language.StringByID(R.MyInternationalizationString.Logining));
|
|
var requestObj = new SendDataToServer.LoginObj
|
{
|
Account = accountStr,
|
Password = passwordStr,
|
Source = CommonPage.Source,
|
Company = CommonPage.Company
|
};
|
var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestObj);
|
var revertObj = await CommonPage.Instance.RequestHttpsZigbeeAsync("ZigbeeUsers/Login", System.Text.Encoding.UTF8.GetBytes(requestJson));
|
if (revertObj == null)
|
{
|
CommonPage.Instance.FailureToServer();
|
CommonPage.Loading.Hide();
|
return;
|
}
|
var stateCodeStr = revertObj.StateCode.ToUpper();
|
//Error 不能直接从服务器取,只能根据状态码逐一判断
|
if (stateCodeStr == "SUCCESS")
|
{
|
if (revertObj.ResponseData == null)
|
{
|
return;
|
}
|
|
HomePage.Instance.ShowLoginLoadView();
|
|
new System.Threading.Thread(async () =>
|
{
|
//存储数据
|
var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.UserLoginRes>(revertObj.ResponseData.ToString());
|
var revertData = responseDataObj;
|
Config.ReFresh();
|
//标记上一次是不是同一个账号登陆
|
UserCenter.UserCenterResourse.ResidenceOption.TheSameLoginAccount = Config.Instance.Guid == revertData.Guid;
|
Config.Instance.Account = revertData.Account;
|
Config.Instance.Password = passwordStr;
|
Config.Instance.MD5PWD = revertData.MD5PWD;
|
Config.Instance.Guid = revertData.Guid;
|
Config.Instance.LoginDateTime = DateTime.Now;
|
Config.Instance.LoginToken = revertData.Token;
|
Config.Instance.Save();
|
|
var resultRegID = await Shared.Common.CommonPage.Instance.PushRegID();
|
var homes = await House.GetHomeLists();
|
//刷新个人中心的内存及线程
|
await UserCenter.UserCenterLogic.InitUserCenterMenmoryAndThread();
|
//启动ZigBee
|
ZigBee.Common.Application.Init();
|
|
UserCenter.HdlRoomLogic.Current.InitAllRoom();
|
Application.RunOnMainThread(() =>
|
{
|
CommonPage.Loading.Hide();
|
this.RemoveFromParent();
|
CommonPage.Instance.RemoveViewByTag("Login");
|
UserPage.Instance.Fresh();
|
});
|
})
|
{ IsBackground = true }.Start();
|
}
|
else if (stateCodeStr == "NOTVERIFY")
|
{
|
CommonPage.Loading.Hide();
|
//未激活
|
loginErrorBtn.TextID = R.MyInternationalizationString.NOTVERIFY;
|
}
|
else if (stateCodeStr == "NOTENABLE")
|
{
|
CommonPage.Loading.Hide();
|
//该用户属于调试账号,并未启用
|
loginErrorBtn.TextID = R.MyInternationalizationString.NOTENABLE;
|
}
|
else if (stateCodeStr == "USERNAMEORPWDERROR")
|
{
|
CommonPage.Loading.Hide();
|
//账号或密码错误
|
loginErrorBtn.TextID = R.MyInternationalizationString.USERNAMEORPWDERROR;
|
}
|
else if (stateCodeStr == "ACCOUNTNOEXISTS")
|
{
|
CommonPage.Loading.Hide();
|
//账号不存在
|
loginErrorBtn.TextID = R.MyInternationalizationString.ACCOUNTNOEXISTS;
|
}
|
else if (stateCodeStr == "YOUDATANOISLOCALREGION")
|
{
|
CommonPage.Loading.Hide();
|
//不在本区域,需要重定向区域后再次请求登录
|
if (revertObj.ResponseData == null)
|
{
|
return;
|
}
|
var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.UserLoginLocalRegionRes>(revertObj.ResponseData.ToString());
|
CommonPage.RequestHttpsHost = responseDataObj.RegionServer;
|
//再次登录
|
Login(accountStr, passwordStr);
|
}
|
else
|
{
|
loginErrorBtn.TextID = R.MyInternationalizationString.RequestServerFailed;
|
}
|
}
|
catch (Exception ex)
|
{
|
System.Console.WriteLine($"登录失败--{ex.Message}");
|
CommonPage.Loading.Hide();
|
CommonPage.Instance.FailureToServer();
|
}
|
finally
|
{
|
//CommonPage.Loading.Hide();
|
}
|
//});
|
};
|
action();
|
}
|
|
/// <summary>
|
/// CheckAccount
|
/// </summary>
|
/// <param name="accountStr"></param>
|
/// <returns></returns>
|
private bool CheckAccount(string accountStr)
|
{
|
if (phoneEmailForm.SelectedEmail.IsSelected)
|
{
|
if (AccountLogic.Instance.CheckEmail(accountStr) == false)
|
{
|
loginErrorBtn.TextID = R.MyInternationalizationString.TheEmailError;
|
return false;
|
}
|
}
|
else
|
{
|
if (AccountLogic.Instance.CheckPhone(accountStr) == false)
|
{
|
loginErrorBtn.TextID = R.MyInternationalizationString.ThePhoneError;
|
return false;
|
}
|
}
|
return true;
|
}
|
|
/// <summary>
|
/// 通过验证码登录
|
/// </summary>
|
/// <param name="sender">Sender.</param>
|
/// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param>
|
private void LoginByCode(object sender, MouseEventArgs mouseEventArgs)
|
{
|
//检测隐私协议
|
if (this.CheckPrivacyPolicy() == false)
|
{
|
return;
|
}
|
//this.RemoveFromParent();
|
var loginByCodePage = new AccountLoginByCode();
|
CommonPage.Instance.AddChidren(loginByCodePage);
|
loginByCodePage.Show();
|
}
|
|
/// <summary>
|
/// wechat登录
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="mouseEventArgs"></param>
|
private void LoginByWechat(object sender, MouseEventArgs mouseEventArgs)
|
{
|
//检测隐私协议
|
if (this.CheckPrivacyPolicy() == false)
|
{
|
return;
|
}
|
#if Android
|
//var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP),
|
// Language.StringByID(R.MyInternationalizationString.LoginByWechat),
|
// Language.StringByID(R.MyInternationalizationString.Cancel),
|
// Language.StringByID(R.MyInternationalizationString.Confrim));
|
//alert.Show();
|
//alert.ResultEventHandler += (send, e) =>
|
//{
|
//if (e)
|
//{
|
com.hdl.home.Application.WXLogin();
|
com.hdl.home.WXEntryActivity.RespAction = (authStr) =>
|
{
|
if (authStr == null)
|
{
|
|
}
|
else
|
{
|
new System.Threading.Thread(async () =>
|
{
|
var re = await isBindAuthAsync(authStr);
|
if (re)
|
{
|
Application.RunOnMainThread(() =>
|
{
|
//直接登录
|
HomePage.Instance.ShowLoginLoadView();
|
});
|
var resultRegID = await Shared.Common.CommonPage.Instance.PushRegID();
|
var homes = await House.GetHomeLists();
|
//刷新个人中心的内存及线程
|
await UserCenter.UserCenterLogic.InitUserCenterMenmoryAndThread();
|
//启动ZigBee
|
ZigBee.Common.Application.Init();
|
UserCenter.HdlRoomLogic.Current.InitAllRoom();
|
Application.RunOnMainThread(() =>
|
{
|
this.RemoveFromParent();
|
CommonPage.Instance.RemoveViewByTag("Login");
|
UserPage.Instance.Fresh();
|
});
|
}
|
else
|
{
|
var authRes = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.AuthUserRes>(authStr);
|
Application.RunOnMainThread(() =>
|
{
|
var registerPage = new AccountRegister();
|
Shared.Common.CommonPage.Instance.AddChidren(registerPage);
|
registerPage.OpenID = authRes.openid;
|
registerPage.Show();
|
});
|
}
|
})
|
{ IsBackground = true }.Start();
|
}
|
};
|
//}
|
//};
|
#endif
|
|
#if iOS
|
Home.IOS.AppDelegate.WXLogin();
|
Home.IOS.AppDelegate.RespAction = (authStr) =>
|
{
|
if (authStr == null)
|
{
|
|
}
|
else
|
{
|
new System.Threading.Thread(async () =>
|
{
|
|
var re = await isBindAuthAsync(authStr);
|
if (re)
|
{
|
//直接登录
|
//this.RemoveFromParent();
|
|
//UserPage.Instance.Fresh();
|
var resultRegID = await Shared.Common.CommonPage.Instance.PushRegID();
|
var homes = await House.GetHomeLists();
|
//启动ZigBee
|
ZigBee.Common.Application.Init();
|
//刷新个人中心的内存及线程
|
await UserCenter.UserCenterLogic.InitUserCenterMenmoryAndThread();
|
UserCenter.HdlRoomLogic.Current.InitAllRoom();
|
Application.RunOnMainThread(() =>
|
{
|
this.RemoveFromParent();
|
UserPage.Instance.Fresh();
|
});
|
}
|
else
|
{
|
var authRes = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.AuthUserRes>(authStr);
|
Application.RunOnMainThread(() =>
|
{
|
var registerPage = new AccountRegister();
|
Shared.Common.CommonPage.Instance.AddChidren(registerPage);
|
registerPage.OpenID = authRes.openid;
|
registerPage.Show();
|
});
|
}
|
})
|
{ IsBackground = true }.Start();
|
}
|
};
|
#endif
|
|
|
|
}
|
|
/// <summary>
|
/// qq登录
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="mouseEventArgs"></param>
|
private void LoginByQQ(object sender, MouseEventArgs mouseEventArgs)
|
{
|
|
}
|
|
/// <summary>
|
/// phone/email 选择
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="mouseEventArgs"></param>
|
private void SelectPhoneOrEmail_MouseUpEvent(object sender, MouseEventArgs mouseEventArgs)
|
{
|
phoneEmailForm.SelectedPhone.IsSelected = phoneEmailForm.SelectedEmail.IsSelected = false;
|
phoneEmailForm.SelectedPhone.IsBold = phoneEmailForm.SelectedEmail.IsBold = false;
|
loginBtn.Enable = loginBtn.IsSelected = false;
|
loginErrorBtn.Text = string.Empty;
|
(sender as Button).IsSelected = (sender as Button).IsBold = true;
|
if ((sender as Button).Tag.ToString() == "Phone")
|
{
|
AddPhoneOrEmailFL(accountPwdFL, "Phone");
|
}
|
else
|
{
|
AddPhoneOrEmailFL(accountPwdFL, "Email");
|
}
|
}
|
/// <summary>
|
/// AddPhoneOrEmailFL
|
/// </summary>
|
/// <param name="accountPwdFrameLayout"></param>
|
/// <param name="phoneOrEmail"></param>
|
private void AddPhoneOrEmailFL(FrameLayout accountPwdFrameLayout, string phoneOrEmail)
|
{
|
if (phoneOrEmail == "Phone")
|
{
|
if (phoneRow != null)
|
{
|
phoneRow.Visible = true;
|
phonePwdRow.Visible = true;
|
if (emailRow != null)
|
{
|
emailRow.Visible = false;
|
emailPwdRow.Visible = false;
|
}
|
this.Pwd_TextChange(phonePwdRow);
|
return;
|
}
|
phoneRow = new PhoneLoginRowForm();
|
phoneRow.Init(accountPwdFrameLayout, this, this.oldInputPhone, 29, 29);
|
phoneRow.AccountET.TextChangeEventHandler += Account_TextChange;
|
|
phonePwdRow = new PwdLoginRowForm();
|
phonePwdRow.Init(accountPwdFrameLayout, 29, 225);
|
phonePwdRow.PasswrodET.TextChangeEventHandler += (sender, e) =>
|
{
|
this.Pwd_TextChange(phonePwdRow);
|
};
|
}
|
else
|
{
|
if (emailRow != null)
|
{
|
emailRow.Visible = true;
|
emailPwdRow.Visible = true;
|
if (phoneRow != null)
|
{
|
phoneRow.Visible = false;
|
phonePwdRow.Visible = false;
|
}
|
this.Pwd_TextChange(emailPwdRow);
|
return;
|
}
|
emailRow = new EmailLoginRowForm();
|
emailRow.Init(accountPwdFrameLayout, this.oldInputEmail, 29, 29);
|
emailRow.AccountET.TextChangeEventHandler += Account_TextChange;
|
|
emailPwdRow = new PwdLoginRowForm();
|
emailPwdRow.Init(accountPwdFrameLayout, 29, 225);
|
emailPwdRow.PasswrodET.TextChangeEventHandler += (sender, e) =>
|
{
|
this.Pwd_TextChange(emailPwdRow);
|
};
|
}
|
}
|
#endregion
|
|
|
#region ◆ 忘记密码________________________
|
/// <summary>
|
/// 忘记密码
|
/// </summary>
|
private void ForgetPWD_MouseUpEvent(object sender, MouseEventArgs mouseEventArgs)
|
{
|
//检测隐私协议
|
if (this.CheckPrivacyPolicy() == false)
|
{
|
return;
|
}
|
var forgot = new AccountForgetPWD();
|
CommonPage.Instance.AddChidren(forgot);
|
forgot.Show();
|
}
|
|
#endregion
|
|
#region ◆ 注册_____________________________
|
|
/// <summary>
|
/// 注册
|
/// </summary>
|
/// <param name="sender">Sender.</param>
|
/// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param>
|
private void Register(object sender, MouseEventArgs mouseEventArgs)
|
{
|
//检测隐私协议
|
if (this.CheckPrivacyPolicy() == false)
|
{
|
return;
|
}
|
var registerPage = new AccountRegister();
|
CommonPage.Instance.AddChidren(registerPage);
|
registerPage.Show();
|
}
|
|
#endregion
|
|
#region ◆ 账号密码监听______________________
|
/// <summary>
|
/// 账号监听
|
/// </summary>
|
/// <param name="sender">Sender.</param>
|
/// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param>
|
private void Account_TextChange(object sender, string mouseEventArgs)
|
{
|
loginErrorBtn.Text = string.Empty;
|
}
|
|
/// <summary>
|
/// 密码监听事件
|
/// </summary>
|
/// <param name="pwdRow">Sender.</param>
|
private void Pwd_TextChange(PwdLoginRowForm pwdRow)
|
{
|
loginErrorBtn.Text = string.Empty;
|
string pswText = pwdRow.PasswrodET.Text.Trim();
|
if (1 <= pswText.Length && pswText.Length <= 16 && (phoneRow.AccountET.Text.Trim().Length > 0 || emailRow?.AccountET.Text.Trim().Length > 0))
|
{
|
loginBtn.Enable = loginBtn.IsSelected = true;
|
}
|
else if (pswText.Length > 16)
|
{
|
pwdRow.PasswrodET.Text = pswText.Substring(0, 16);
|
if (phoneRow.AccountET.Text.Trim().Length > 0 || emailRow?.AccountET.Text.Trim().Length > 0)
|
{
|
loginBtn.Enable = loginBtn.IsSelected = true;
|
}
|
}
|
else
|
{
|
loginBtn.Enable = loginBtn.IsSelected = false;
|
}
|
}
|
|
|
#endregion
|
|
|
|
|
#region ■ 变量声明___________________________
|
|
/// <summary>
|
/// 错误提示控件
|
/// </summary>
|
private NormalViewControl btnErrorMsg = null;
|
/// <summary>
|
/// 是否同意隐私协议
|
/// </summary>
|
private bool isAgreePrivacyPolicy = true;
|
|
#endregion
|
|
#region ■ 初始化_____________________________
|
|
/// <summary>
|
/// 界面显示
|
/// </summary>
|
/// <param name="account">登陆账号</param>
|
public void ShowForm(string account = "")
|
{
|
if (Config.Instance.IsLogin == true)
|
{
|
return;
|
}
|
CommonPage.Instance.IsDrawerLockMode = true;
|
this.Tag = "Login";
|
|
//界面上部的黑色图片
|
var btnTopBlackPic = new NormalViewControl(this.Width, Application.GetRealHeight(619), false);
|
btnTopBlackPic.UnSelectedImagePath = "Account/Logo_loginBG.png";
|
this.AddChidren(btnTopBlackPic);
|
|
//中间浅白色的背景
|
var frameMidBack = new FrameLayout();
|
frameMidBack.Y = btnTopBlackPic.Bottom;
|
frameMidBack.Height = this.Height - btnTopBlackPic.Bottom;
|
frameMidBack.BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor;
|
this.AddChidren(frameMidBack);
|
|
//HdlHome的图标
|
var btnLogoIcon = new PicViewControl(184, 184);
|
btnLogoIcon.Y = Application.GetRealHeight(230);
|
btnLogoIcon.UnSelectedImagePath = "Account/Logo_White.png";
|
btnLogoIcon.Gravity = Gravity.CenterHorizontal;
|
this.AddChidren(btnLogoIcon);
|
//Hdl Home
|
var btnLogoName = new NormalViewControl(300, 69, true);
|
btnLogoName.Y = btnLogoIcon.Bottom;
|
btnLogoName.Gravity = Gravity.CenterHorizontal;
|
btnLogoName.TextID = R.MyInternationalizationString.AppName;
|
btnLogoName.TextColor = ZigbeeColor.Current.GXCTextWhiteColor;
|
btnLogoName.TextAlignment = TextAlignment.Center;
|
btnLogoName.TextSize = 16;
|
this.AddChidren(btnLogoName);
|
|
//1:手机号 2:邮箱
|
int selectIndex = account.Contains("@") == false ? 1 : 2;
|
|
//初始化 手机账号登陆窗口
|
var frameAccLoginPhoneback = this.InitAccoutLoginWindow(frameMidBack, selectIndex == 1 ? account : string.Empty, 1);
|
//初始化 邮箱账号登陆窗口
|
var frameEmailLoginPhoneback = this.InitAccoutLoginWindow(frameMidBack, selectIndex == 1 ? string.Empty : account, 2);
|
//初始化 手机账号验证码登陆窗口
|
var frameAccCodeLoginPhoneback = this.InitCodeLoginWindow(frameMidBack, selectIndex == 1 ? account : string.Empty, 1);
|
//初始化 邮箱账号验证码登陆窗口
|
var frameEmailCodeLoginPhoneback = this.InitCodeLoginWindow(frameMidBack, selectIndex == 1 ? string.Empty : account, 2);
|
|
//定义这两个东西,是为了减少判断的代码
|
var framePhone = frameAccLoginPhoneback;
|
var frameEmail = frameEmailLoginPhoneback;
|
|
//邮箱,手机号的切换控件
|
var sitchControl = new Controls.PhoneEmailSelectControl();
|
sitchControl.Y = Application.GetRealHeight(559);
|
this.AddChidren(sitchControl);
|
sitchControl.SelectMenuEvent += (selectMenu) =>
|
{
|
selectIndex = selectMenu;
|
//手机号
|
if (selectIndex == 1)
|
{
|
framePhone.Visible = true;
|
frameEmail.Visible = false;
|
}
|
//邮箱
|
else if (selectIndex == 2)
|
{
|
framePhone.Visible = false;
|
frameEmail.Visible = true;
|
}
|
};
|
//执行初始化
|
sitchControl.InitControl(ZigbeeColor.Current.GXCButtonSelectedColor, selectIndex);
|
|
//错误提示控件
|
this.btnErrorMsg = new NormalViewControl(700, 60, true);
|
btnErrorMsg.Y = frameAccLoginPhoneback.Y - Application.GetRealHeight(60 + 3);
|
btnErrorMsg.X = Application.GetRealWidth(288);
|
btnErrorMsg.TextColor = ZigbeeColor.Current.GXCTextRed;
|
btnErrorMsg.IsBold = true;
|
frameMidBack.AddChidren(btnErrorMsg);
|
|
//验证码登陆
|
//1:账号登陆 2:验证码登陆
|
int codeDiv = 1;
|
var btnLoginByCode = new NormalViewControl(300, 100, true);
|
btnLoginByCode.X = Application.GetRealWidth(98);
|
btnLoginByCode.Y = frameAccLoginPhoneback.Bottom + Application.GetRealHeight(21);
|
btnLoginByCode.TextID = R.MyInternationalizationString.LoginByCode;
|
btnLoginByCode.TextColor = UserCenterColor.Current.TextGrayColor3;
|
btnLoginByCode.TextSize = 12;
|
frameMidBack.AddChidren(btnLoginByCode);
|
btnLoginByCode.ButtonClickEvent += (sender, e) =>
|
{
|
if (codeDiv == 1)
|
{
|
//验证码登陆
|
codeDiv = 2;
|
btnLoginByCode.TextID = R.MyInternationalizationString.LoginByAccountPWD; //账号登陆
|
//账号登陆的两个东西隐藏
|
frameAccLoginPhoneback.Visible = false;
|
frameEmailLoginPhoneback.Visible = false;
|
//替换这两个东西
|
framePhone = frameAccCodeLoginPhoneback;
|
frameEmail = frameEmailCodeLoginPhoneback;
|
}
|
else
|
{
|
//账号登陆
|
codeDiv = 1;
|
btnLoginByCode.TextID = R.MyInternationalizationString.LoginByCode;//验证码登陆
|
//验证码登陆的两个东西隐藏
|
frameAccCodeLoginPhoneback.Visible = false;
|
frameEmailCodeLoginPhoneback.Visible = false;
|
//替换这两个东西
|
framePhone = frameAccLoginPhoneback;
|
frameEmail = frameEmailLoginPhoneback;
|
}
|
//刷新菜单
|
sitchControl.SetSelectIndex(1);
|
};
|
|
//注册用户
|
var btnRegister = new NormalViewControl(244, 100, true);
|
btnRegister.Y = btnLoginByCode.Y;
|
btnRegister.X = frameMidBack.Width - Application.GetRealWidth(98 + 244);
|
btnRegister.TextID = R.MyInternationalizationString.Register;
|
btnRegister.TextColor = UserCenterColor.Current.TextGrayColor3;
|
btnRegister.TextSize = 12;
|
btnRegister.TextAlignment = TextAlignment.CenterRight;
|
frameMidBack.AddChidren(btnRegister);
|
btnRegister.ButtonClickEvent += (sender, e) =>
|
{
|
var registerPage = new AccountRegister();
|
CommonPage.Instance.AddChidren(registerPage);
|
registerPage.Show();
|
};
|
|
//微信图标
|
var btnWebChat = new IconViewControl(115);
|
btnWebChat.Y = frameMidBack.Height - Application.GetRealHeight(69) - btnWebChat.IconSize;
|
btnWebChat.UnSelectedImagePath = "Account/Wechat.png";
|
btnWebChat.Gravity = Gravity.CenterHorizontal;
|
frameMidBack.AddChidren(btnWebChat);
|
btnWebChat.ButtonClickEvent += (sender, e) =>
|
{
|
//微信登陆
|
this.LoginByWechat();
|
};
|
|
//添加服务协议控件
|
// this.AddServiceAgreementControl(frameMidBack);
|
}
|
|
#endregion
|
|
#region ■ 初始化账号登陆窗口_________________
|
|
/// <summary>
|
/// 初始化账号登陆窗口
|
/// </summary>
|
/// <param name="frameMidBack">中间浅色的背景容器</param>
|
/// <param name="i_account">登陆账号</param>
|
/// <param name="i_div">1:手机号 2:邮箱</param>
|
private FrameLayout InitAccoutLoginWindow(FrameLayout frameMidBack, string i_account, int i_div)
|
{
|
//登陆按钮
|
BottomClickButton btnLogin = null;
|
//账号输入框
|
TextInputControl txtAccount = null;
|
//密码输入框
|
TextInputControl txtPsw = null;
|
//容器
|
var frameBack = new FrameLayout();
|
frameBack.Height = Application.GetRealHeight(620);
|
frameBack.Y = Application.GetRealHeight(181);
|
frameMidBack.AddChidren(frameBack);
|
frameBack.Visible = false;
|
//白色背景
|
var frameWhiteBack = new FrameLayout();
|
frameWhiteBack.Width = Application.GetRealWidth(942);
|
frameWhiteBack.Height = Application.GetRealHeight(553);
|
frameWhiteBack.BackgroundColor = UserCenterColor.Current.White;
|
frameWhiteBack.Radius = (uint)Application.GetRealHeight(17);
|
frameWhiteBack.Gravity = Gravity.CenterHorizontal;
|
frameBack.AddChidren(frameWhiteBack);
|
|
//账号行
|
var rowAccount = new FrameLayout();
|
rowAccount.Y = Application.GetRealHeight(29);
|
rowAccount.Width = Application.GetRealWidth(884);
|
rowAccount.Height = Application.GetRealHeight(138);
|
rowAccount.Gravity = Gravity.CenterHorizontal;
|
frameWhiteBack.AddChidren(rowAccount);
|
//账号图标
|
var btnAccountIcon = new IconViewControl(92);
|
btnAccountIcon.X = Application.GetRealWidth(69);
|
btnAccountIcon.Gravity = Gravity.CenterVertical;
|
btnAccountIcon.UnSelectedImagePath = "Account/Account.png";
|
rowAccount.AddChidren(btnAccountIcon);
|
//账号输入框
|
txtAccount = new TextInputControl(600, 92, true);
|
txtAccount.X = btnAccountIcon.Right + Application.GetRealWidth(35);
|
txtAccount.Gravity = Gravity.CenterVertical;
|
if (i_div == 1)
|
{
|
//手机号
|
txtAccount.IsNumberKeyboardType = true;
|
txtAccount.PlaceholderText = Language.StringByID(R.MyInternationalizationString.PleaseInputPhoneNum);
|
}
|
else
|
{
|
//邮箱
|
txtAccount.PlaceholderText = Language.StringByID(R.MyInternationalizationString.PleaseInputEmail);
|
}
|
txtAccount.PlaceholderTextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor;
|
txtAccount.Text = i_account;
|
rowAccount.AddChidren(txtAccount);
|
txtAccount.TextChangeEventHandler += (sender, e) =>
|
{
|
//隐藏错误提示
|
if (this.btnErrorMsg.Visible == true)
|
{
|
this.btnErrorMsg.Visible = false;
|
}
|
if (txtAccount.Text.Trim().Length > 0 && txtPsw.Text.Length > 0)
|
{
|
//能够登陆
|
if (btnLogin.CanClick == false) { btnLogin.CanClick = true; }
|
return;
|
}
|
//不能点击
|
if (btnLogin.CanClick == true) { btnLogin.CanClick = false; }
|
};
|
|
//底线
|
var btnAccountLine = new NormalViewControl(rowAccount.Width, 1, false);
|
btnAccountLine.BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor;
|
btnAccountLine.Y = rowAccount.Height - 2;
|
rowAccount.AddChidren(btnAccountLine);
|
txtAccount.FoucsChanged += (sender, focusEvent) =>
|
{
|
//焦点进入时,底线颜色变更
|
if (focusEvent.Focus)
|
{
|
btnAccountLine.BackgroundColor = ZigbeeColor.Current.GXCSelectedLineColor;
|
btnAccountLine.Height = 2;
|
}
|
else
|
{
|
btnAccountLine.BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor;
|
btnAccountLine.Height = 1;
|
}
|
};
|
|
//密码行
|
var rowPassword = new FrameLayout();
|
rowPassword.Y = rowAccount.Bottom + Application.GetRealHeight(58);
|
rowPassword.Width = rowAccount.Width;
|
rowPassword.Height = rowAccount.Height;
|
rowPassword.Gravity = Gravity.CenterHorizontal;
|
frameWhiteBack.AddChidren(rowPassword);
|
//账号图标
|
var btnPswIcon = new IconViewControl(92);
|
btnPswIcon.X = btnAccountIcon.X;
|
btnPswIcon.Gravity = Gravity.CenterVertical;
|
btnPswIcon.UnSelectedImagePath = "Account/Password.png";
|
rowPassword.AddChidren(btnPswIcon);
|
//密码输入框
|
txtPsw = new TextInputControl(600, 92, true);
|
txtPsw.X = txtAccount.X;
|
txtPsw.Gravity = Gravity.CenterVertical;
|
txtPsw.PlaceholderText = Language.StringByID(R.MyInternationalizationString.PleaseInputPWD);
|
txtPsw.PlaceholderTextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor;
|
txtPsw.SecureTextEntry = true;
|
rowPassword.AddChidren(txtPsw);
|
txtPsw.TextChangeEventHandler += (sender, e) =>
|
{
|
txtAccount.TextChangeEventHandler(sender, e);
|
};
|
//隐藏或者显示密码的图标
|
var btnHiden = new IconViewControl(92);
|
btnHiden.X = rowPassword.Width - Application.GetRealWidth(46) - btnHiden.IconSize;
|
btnHiden.SelectedImagePath = "Account/UnhidePwd.png";
|
btnHiden.UnSelectedImagePath = "Account/HidePwd.png";
|
btnHiden.Gravity = Gravity.CenterVertical;
|
rowPassword.AddChidren(btnHiden);
|
btnHiden.ButtonClickEvent += (sender, e) =>
|
{
|
txtPsw.SecureTextEntry = !txtPsw.SecureTextEntry;
|
btnHiden.IsSelected = !btnHiden.IsSelected;
|
};
|
|
//底线
|
var btnPswLine = new NormalViewControl(rowPassword.Width, 1, false);
|
btnPswLine.BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor;
|
btnPswLine.Y = rowPassword.Height - 2;
|
rowPassword.AddChidren(btnPswLine);
|
txtPsw.FoucsChanged += (sender, focusEvent) =>
|
{
|
//焦点进入时,底线颜色变更
|
if (focusEvent.Focus)
|
{
|
btnPswLine.BackgroundColor = ZigbeeColor.Current.GXCSelectedLineColor;
|
btnPswLine.Height = 2;
|
}
|
else
|
{
|
btnPswLine.BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor;
|
btnPswLine.Height = 1;
|
}
|
};
|
|
//忘记密码?
|
var btnForgot = new NormalViewControl(250, 90, true);
|
btnForgot.Y = rowPassword.Bottom + Application.GetRealHeight(15);
|
btnForgot.X = frameWhiteBack.Width - Application.GetRealWidth(250 + 35);
|
btnForgot.TextSize = 12;
|
btnForgot.TextColor = UserCenterColor.Current.TextGrayColor3;
|
btnForgot.TextAlignment = TextAlignment.CenterRight;
|
btnForgot.TextID = R.MyInternationalizationString.ForgotPWD_1;
|
frameWhiteBack.AddChidren(btnForgot);
|
btnForgot.ButtonClickEvent += (sender, e) =>
|
{
|
var forgot = new AccountForgetPWD();
|
CommonPage.Instance.AddChidren(forgot);
|
forgot.Show();
|
};
|
|
//登陆按钮
|
btnLogin = new BottomClickButton(688);
|
btnLogin.Gravity = Gravity.BottomCenter;
|
btnLogin.TextID = R.MyInternationalizationString.Login;
|
btnLogin.oldBackgroundColor = btnLogin.BackgroundColor;
|
frameBack.AddChidren(btnLogin);
|
btnLogin.CanClick = false;
|
btnLogin.ButtonClickEvent += (sender, e) =>
|
{
|
//账号密码登陆
|
this.LoginByAccountAndPsw(txtAccount.Text.Trim(), txtPsw.Text, i_div);
|
};
|
|
return frameBack;
|
}
|
|
#endregion
|
|
#region ■ 初始化验证码登陆窗口_______________
|
|
/// <summary>
|
/// 初始化验证码登陆窗口
|
/// </summary>
|
/// <param name="frameMidBack">中间浅色的背景容器</param>
|
/// <param name="i_account">登陆账号</param>
|
/// <param name="i_div">1:手机号 2:邮箱</param>
|
private FrameLayout InitCodeLoginWindow(FrameLayout frameMidBack, string i_account, int i_div)
|
{
|
//登陆按钮
|
BottomClickButton btnLogin = null;
|
//账号输入框
|
TextInputControl txtAccount = null;
|
//密码输入框
|
TextInputControl txtVerCode = null;
|
//当前输入的账号(防止发送验证码之后,修改账号)
|
string nowInputAccount = string.Empty;
|
//是否已经发送了验证码
|
bool hadSendCode = false;
|
|
//容器
|
var frameBack = new FrameLayout();
|
frameBack.Height = Application.GetRealHeight(620);
|
frameBack.Y = Application.GetRealHeight(181);
|
frameMidBack.AddChidren(frameBack);
|
frameBack.Visible = false;
|
//白色背景
|
var frameWhiteBack = new FrameLayout();
|
frameWhiteBack.Width = Application.GetRealWidth(942);
|
frameWhiteBack.Height = Application.GetRealHeight(553);
|
frameWhiteBack.BackgroundColor = UserCenterColor.Current.White;
|
frameWhiteBack.Radius = (uint)Application.GetRealHeight(17);
|
frameWhiteBack.Gravity = Gravity.CenterHorizontal;
|
frameBack.AddChidren(frameWhiteBack);
|
|
//账号行
|
var rowAccount = new FrameLayout();
|
rowAccount.Y = Application.GetRealHeight(29);
|
rowAccount.Width = Application.GetRealWidth(884);
|
rowAccount.Height = Application.GetRealHeight(138);
|
rowAccount.Gravity = Gravity.CenterHorizontal;
|
frameWhiteBack.AddChidren(rowAccount);
|
if (i_div == 2)
|
{
|
//账号图标
|
var btnAccountIcon = new IconViewControl(92);
|
btnAccountIcon.X = Application.GetRealWidth(69);
|
btnAccountIcon.Gravity = Gravity.CenterVertical;
|
btnAccountIcon.UnSelectedImagePath = "Account/Account.png";
|
rowAccount.AddChidren(btnAccountIcon);
|
}
|
else
|
{
|
//地区码
|
var btnArea = new NormalViewControl(139, 60, true);
|
btnArea.TextColor = UserCenterColor.Current.TextGrayColor1;
|
btnArea.TextAlignment = TextAlignment.CenterRight;
|
btnArea.Text = "+86";
|
btnArea.Gravity = Gravity.CenterVertical;
|
rowAccount.AddChidren(btnArea);
|
}
|
//账号输入框
|
txtAccount = new TextInputControl(600, 92, true);
|
txtAccount.X = Application.GetRealWidth(193);
|
txtAccount.Gravity = Gravity.CenterVertical;
|
if (i_div == 1)
|
{
|
//手机号
|
txtAccount.IsNumberKeyboardType = true;
|
txtAccount.PlaceholderText = Language.StringByID(R.MyInternationalizationString.PleaseInputPhoneNum);
|
}
|
else
|
{
|
//邮箱
|
txtAccount.PlaceholderText = Language.StringByID(R.MyInternationalizationString.PleaseInputEmail);
|
}
|
txtAccount.PlaceholderTextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor;
|
txtAccount.Text = i_account;
|
rowAccount.AddChidren(txtAccount);
|
txtAccount.TextChangeEventHandler += (sender, e) =>
|
{
|
//隐藏错误提示
|
if (this.btnErrorMsg.Visible == true)
|
{
|
this.btnErrorMsg.Visible = false;
|
}
|
//必须要发送成功才行
|
if (hadSendCode = true && txtAccount.Text.Trim().Length > 0 && txtVerCode.Text.Length > 0)
|
{
|
//能够登陆
|
if (btnLogin.CanClick == false) { btnLogin.CanClick = true; }
|
return;
|
}
|
//不能点击
|
if (btnLogin.CanClick == true) { btnLogin.CanClick = false; }
|
};
|
//底线
|
var btnAccountLine = new NormalViewControl(rowAccount.Width, 1, false);
|
btnAccountLine.BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor;
|
btnAccountLine.Y = rowAccount.Height - 2;
|
rowAccount.AddChidren(btnAccountLine);
|
txtAccount.FoucsChanged += (sender, focusEvent) =>
|
{
|
//焦点进入时,底线颜色变更
|
if (focusEvent.Focus)
|
{
|
btnAccountLine.BackgroundColor = ZigbeeColor.Current.GXCSelectedLineColor;
|
btnAccountLine.Height = 2;
|
}
|
else
|
{
|
btnAccountLine.BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor;
|
btnAccountLine.Height = 1;
|
}
|
};
|
|
//验证码行
|
var rowVerCode = new FrameLayout();
|
rowVerCode.Y = rowAccount.Bottom + Application.GetRealHeight(58);
|
rowVerCode.Width = rowAccount.Width;
|
rowVerCode.Height = rowAccount.Height;
|
rowVerCode.Gravity = Gravity.CenterHorizontal;
|
frameWhiteBack.AddChidren(rowVerCode);
|
//账号图标
|
var btnCodeIcon = new IconViewControl(92);
|
btnCodeIcon.X = Application.GetRealWidth(69);
|
btnCodeIcon.Gravity = Gravity.CenterVertical;
|
btnCodeIcon.UnSelectedImagePath = "Account/Code.png";
|
rowVerCode.AddChidren(btnCodeIcon);
|
//验证码输入框
|
txtVerCode = new TextInputControl(350, 92, true);
|
txtVerCode.X = btnCodeIcon.Right + Application.GetRealWidth(35);
|
txtVerCode.Gravity = Gravity.CenterVertical;
|
txtVerCode.PlaceholderText = Language.StringByID(R.MyInternationalizationString.PleaseInputVerificationCode);
|
txtVerCode.PlaceholderTextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor;
|
txtVerCode.SecureTextEntry = true;
|
rowVerCode.AddChidren(txtVerCode);
|
txtVerCode.TextChangeEventHandler += (sender, e) =>
|
{
|
txtAccount.TextChangeEventHandler(sender, e);
|
};
|
//竖线
|
var btnLine2 = new NormalViewControl(1, Application.GetRealHeight(66), false);
|
btnLine2.X = Application.GetRealWidth(611);
|
btnLine2.Gravity = Gravity.CenterVertical;
|
btnLine2.BackgroundColor = ZigbeeColor.Current.GXCLineColor;
|
rowVerCode.AddChidren(btnLine2);
|
//获取验证码
|
var btnSendCode = new NormalViewControl(250, 70, true);
|
btnSendCode.X = btnLine2.Right + Application.GetRealWidth(36);
|
btnSendCode.Gravity = Gravity.CenterVertical;
|
btnSendCode.TextID = R.MyInternationalizationString.SendVerificationCode;
|
btnSendCode.TextColor = UserCenterColor.Current.TextGrayColor3;
|
btnSendCode.TextAlignment = TextAlignment.Center;
|
btnSendCode.IsBold = true;
|
rowVerCode.AddChidren(btnSendCode);
|
btnSendCode.ButtonClickEvent += async (sender, e) =>
|
{
|
//检测输入的账号
|
nowInputAccount = txtAccount.Text.Trim();
|
if (this.CheckInputAccount("86", nowInputAccount, i_div) == false)
|
{
|
return;
|
}
|
//发送验证码
|
hadSendCode = await this.SendVerCode(btnSendCode, nowInputAccount, i_div);
|
};
|
|
//底线
|
var btnCodeLine = new NormalViewControl(rowVerCode.Width, 1, false);
|
btnCodeLine.BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor;
|
btnCodeLine.Y = rowVerCode.Height - 2;
|
rowVerCode.AddChidren(btnCodeLine);
|
txtVerCode.FoucsChanged += (sender, focusEvent) =>
|
{
|
//焦点进入时,底线颜色变更
|
if (focusEvent.Focus)
|
{
|
btnCodeLine.BackgroundColor = ZigbeeColor.Current.GXCSelectedLineColor;
|
btnCodeLine.Height = 2;
|
}
|
else
|
{
|
btnCodeLine.BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor;
|
btnCodeLine.Height = 1;
|
}
|
};
|
|
//忘记密码?
|
var btnForgot = new NormalViewControl(250, 90, true);
|
btnForgot.Y = rowVerCode.Bottom + Application.GetRealHeight(15);
|
btnForgot.X = frameWhiteBack.Width - Application.GetRealWidth(250 + 35);
|
btnForgot.TextSize = 12;
|
btnForgot.TextColor = UserCenterColor.Current.TextGrayColor3;
|
btnForgot.TextAlignment = TextAlignment.CenterRight;
|
btnForgot.TextID = R.MyInternationalizationString.ForgotPWD_1;
|
frameWhiteBack.AddChidren(btnForgot);
|
btnForgot.ButtonClickEvent += (sender, e) =>
|
{
|
var forgot = new AccountForgetPWD();
|
CommonPage.Instance.AddChidren(forgot);
|
forgot.Show();
|
};
|
|
//登陆按钮
|
btnLogin = new BottomClickButton(688);
|
btnLogin.Gravity = Gravity.BottomCenter;
|
btnLogin.TextID = R.MyInternationalizationString.Login;
|
btnLogin.oldBackgroundColor = btnLogin.BackgroundColor;
|
frameBack.AddChidren(btnLogin);
|
btnLogin.CanClick = false;
|
btnLogin.ButtonClickEvent += (sender, e) =>
|
{
|
//验证码登陆
|
this.LoginByVerCode(nowInputAccount, txtVerCode.Text.Trim(), i_div);
|
};
|
return frameBack;
|
}
|
|
#endregion
|
|
#region ■ 服务协议___________________________
|
|
/// <summary>
|
/// 添加服务协议控件
|
/// </summary>
|
/// <param name="frameBack"></param>
|
private void AddServiceAgreementControl(FrameLayout frameBack)
|
{
|
var frameRow = new FrameLayout();
|
frameRow.Height = Application.GetMinRealAverage(110);
|
frameRow.Y = Application.GetRealHeight(959);
|
frameRow.Gravity = Gravity.CenterHorizontal;
|
|
//字体总宽度
|
int fontWidth = 0;
|
int btnWidth = 0;
|
#if Android
|
//特殊的误差值
|
int speceilValue = Application.GetRealWidth(20);
|
#endif
|
#if iOS
|
//特殊的误差值
|
int speceilValue = Application.GetRealWidth(10);
|
#endif
|
//我已阅读并同意
|
var btnMsg1 = new NormalViewControl(100, 90, true);
|
btnMsg1.Gravity = Gravity.CenterVertical;
|
btnMsg1.Y = Application.GetRealHeight(968);
|
btnMsg1.TextSize = 12;
|
btnMsg1.TextColor = UserCenterColor.Current.TextGrayColor1;
|
btnMsg1.TextID = R.MyInternationalizationString.uMyHadReadAndAgree;
|
//计算真实宽度
|
btnWidth = btnMsg1.GetRealWidthByText();
|
btnMsg1.Width = btnWidth;
|
fontWidth += btnWidth;
|
|
//《隐私权政策》
|
var btnMsg2 = new NormalViewControl(100, 90, true);
|
btnMsg2.Gravity = Gravity.CenterVertical;
|
btnMsg2.TextSize = 12;
|
btnMsg2.TextColor = 0xFF4A90E2;
|
btnMsg2.Text = "《" + Language.StringByID(R.MyInternationalizationString.uPrivacyPolicy) + "》";
|
//计算真实宽度
|
btnWidth = btnMsg2.GetRealWidthByText();
|
btnMsg2.Width = btnWidth;
|
fontWidth += btnWidth;
|
btnMsg2.ButtonClickEvent += (sender, e) =>
|
{
|
var form = new UserCenter.Abount.SLAForm();
|
this.AddChidren(form);
|
form.InitTopFrameLayout();
|
form.InitBodyFrameLayout();
|
form.ShowForm();
|
};
|
|
//和
|
var btnMsg3 = new NormalViewControl(100, 90, true);
|
btnMsg3.Gravity = Gravity.CenterVertical;
|
btnMsg3.TextSize = 12;
|
btnMsg3.TextColor = UserCenterColor.Current.TextGrayColor1;
|
btnMsg3.TextID = R.MyInternationalizationString.uAnd;
|
//计算真实宽度
|
btnWidth = btnMsg3.GetRealWidthByText();
|
btnMsg3.Width = btnWidth;
|
fontWidth += btnWidth;
|
|
//《服务条款》
|
var btnMsg4 = new NormalViewControl(100, 90, true);
|
btnMsg4.Gravity = Gravity.CenterVertical;
|
btnMsg4.TextSize = 12;
|
btnMsg4.TextColor = 0xFF4A90E2;
|
btnMsg4.Text = "《" + Language.StringByID(R.MyInternationalizationString.uTermsOfService) + "》";
|
//计算真实宽度
|
btnWidth = btnMsg4.GetRealWidthByText();
|
btnMsg4.Width = btnWidth;
|
fontWidth += btnWidth;
|
btnMsg4.ButtonClickEvent += (sender, e) =>
|
{
|
btnMsg2.ButtonClickEvent(null, null);
|
};
|
|
//图标
|
var btnIcon = new IconBigViewControl(42, 42);
|
btnIcon.UnSelectedImagePath = "Item/Check1.png";
|
btnIcon.SelectedImagePath = "Item/Check1Selected.png";
|
|
//计算行控件的宽度
|
frameRow.Width = fontWidth + Application.GetMinRealAverage(42) + Application.GetRealWidth(23) - speceilValue * 3;
|
frameBack.AddChidren(frameRow);
|
|
//图标控件初始化
|
frameRow.AddChidren(btnIcon);
|
btnIcon.InitControl();
|
btnIcon.X = -btnIcon.XOffset;
|
btnIcon.UseClickStatu = false;
|
btnIcon.ButtonClickEvent += (sender, e) =>
|
{
|
btnIcon.IsSelected = !btnIcon.IsSelected;
|
isAgreePrivacyPolicy = btnIcon.IsSelected;
|
};
|
|
btnMsg1.X = btnIcon.btnIcon.Width + Application.GetRealWidth(23);
|
frameRow.AddChidren(btnMsg1);
|
btnMsg2.Y = btnMsg1.Y;
|
btnMsg2.X = btnMsg1.Right - speceilValue;
|
frameRow.AddChidren(btnMsg2);
|
btnMsg3.X = btnMsg2.Right - speceilValue;
|
btnMsg3.Y = btnMsg1.Y;
|
frameRow.AddChidren(btnMsg3);
|
btnMsg4.X = btnMsg3.Right - speceilValue;
|
btnMsg4.Y = btnMsg1.Y;
|
frameRow.AddChidren(btnMsg4);
|
}
|
|
#endregion
|
|
#region ■ 账号密码登陆_______________________
|
|
/// <summary>
|
/// 账号密码登陆
|
/// </summary>
|
/// <param name="i_account">账号</param>
|
/// <param name="i_psw">密码</param>
|
/// <param name="i_div">1:手机号 2:邮箱</param>
|
private void LoginByAccountAndPsw(string i_account, string i_psw, int i_div)
|
{
|
//检测账号
|
if (this.CheckInputAccount(string.Empty, i_account, i_div) == false)
|
{
|
return;
|
}
|
|
//登陆中....
|
CommonPage.Loading.Start(Language.StringByID(R.MyInternationalizationString.Logining));
|
|
HdlThreadLogic.Current.RunThread(async () =>
|
{
|
//登陆参数
|
var pra = new SendDataToServer.LoginObj();
|
pra.Account = i_account;
|
pra.Password = i_psw;
|
pra.Source = CommonPage.Source;
|
pra.Company = CommonPage.Company;
|
|
//访问接口
|
var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(pra);
|
var result = await CommonPage.Instance.RequestHttpsZigbeeAsync("ZigbeeUsers/Login", System.Text.Encoding.UTF8.GetBytes(requestJson));
|
|
//处理登陆成功的数据
|
this.AdjustLoginSuccessData(result, pra, i_account, i_psw, i_div);
|
});
|
}
|
|
/// <summary>
|
/// 检测输入的账号
|
/// </summary>
|
/// <param name="i_areaCode">地区码</param>
|
/// <param name="i_account">账号</param>
|
/// <param name="i_div">1:手机号 2:邮箱</param>
|
/// <returns></returns>
|
private bool CheckInputAccount(string i_areaCode, string i_account, int i_div)
|
{
|
if (i_div == 1)
|
{
|
//检测手机
|
if (i_areaCode != string.Empty && AccountLogic.Instance.CheckPhoneWithZone(i_account, i_areaCode) == false)
|
{
|
btnErrorMsg.TextID = R.MyInternationalizationString.ThePhoneError;
|
return false;
|
}
|
//检测手机
|
if (i_areaCode == string.Empty && AccountLogic.Instance.CheckPhone(i_account) == false)
|
{
|
btnErrorMsg.TextID = R.MyInternationalizationString.ThePhoneError;
|
return false;
|
}
|
}
|
else
|
{
|
//检测邮箱
|
if (AccountLogic.Instance.CheckEmail(i_account) == false)
|
{
|
btnErrorMsg.TextID = R.MyInternationalizationString.TheEmailError;
|
return false;
|
}
|
}
|
return true;
|
}
|
|
#endregion
|
|
#region ■ 微信登陆___________________________
|
|
/// <summary>
|
/// 微信登录
|
/// </summary>
|
private void LoginByWechat()
|
{
|
#if Android
|
com.hdl.home.Application.WXLogin();
|
com.hdl.home.WXEntryActivity.RespAction = (authStr) =>
|
{
|
#endif
|
#if iOS
|
Home.IOS.AppDelegate.WXLogin();
|
Home.IOS.AppDelegate.RespAction = (authStr) =>
|
{
|
#endif
|
if (authStr == null)
|
{
|
return;
|
}
|
HdlThreadLogic.Current.RunThread(async () =>
|
{
|
//是否已经绑定
|
var re = await isBindAuthAsync(authStr);
|
if (re)
|
{
|
Application.RunOnMainThread(() =>
|
{
|
//直接登录
|
HomePage.Instance.ShowLoginLoadView();
|
});
|
var resultRegID = await Shared.Common.CommonPage.Instance.PushRegID();
|
var homes = await House.GetHomeLists();
|
//刷新个人中心的内存及线程
|
await UserCenter.UserCenterLogic.InitUserCenterMenmoryAndThread();
|
//启动ZigBee
|
ZigBee.Common.Application.Init();
|
|
Application.RunOnMainThread(() =>
|
{
|
this.RemoveFromParent();
|
CommonPage.Instance.RemoveViewByTag("Login");
|
UserPage.Instance.Fresh();
|
});
|
}
|
else
|
{
|
var authRes = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.AuthUserRes>(authStr);
|
Application.RunOnMainThread(() =>
|
{
|
var registerPage = new AccountRegister();
|
CommonPage.Instance.AddChidren(registerPage);
|
registerPage.OpenID = authRes.openid;
|
registerPage.Show();
|
});
|
}
|
});
|
};
|
}
|
|
/// <summary>
|
/// 是否已绑定
|
/// </summary>
|
/// <param name="authStr"></param>
|
/// <returns></returns>
|
private async System.Threading.Tasks.Task<bool> isBindAuthAsync(string authStr)
|
{
|
var authRes = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.AuthUserRes>(authStr);
|
var auth = new SendDataToServer.AuthUser()
|
{
|
AccessToken = authRes.access_token,
|
RefreshToken = authRes.refresh_token,
|
OpenID = authRes.openid
|
};
|
//获取微信昵称
|
var strUrl = "https://api.weixin.qq.com/sns/userinfo?access_token=" + authRes.access_token;
|
strUrl += "&openid=" + authRes.openid;
|
var byteData = await Common.CommonPage.Instance.DoRequestZigbeeHttpsInterface(strUrl, null, null, "GET");
|
if (byteData == null)
|
{
|
return false;
|
}
|
var receipData = System.Text.Encoding.UTF8.GetString(byteData);
|
var nickData = Newtonsoft.Json.JsonConvert.DeserializeObject<UserCenter.NicknameInfo>(receipData);
|
auth.UserName = nickData.nickname;
|
|
var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(auth);
|
var revertObj = await CommonPage.Instance.RequestHttpsZigbeeAsync("ZigbeeUsers/InsertOrUpdateAuthUser", System.Text.Encoding.UTF8.GetBytes(requestJson));
|
if (revertObj == null)
|
{
|
return false;
|
}
|
var stateCodeStr = revertObj.StateCode.ToUpper();
|
if (stateCodeStr == "SUCCESS")
|
{
|
var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.UserLoginRes>(revertObj.ResponseData.ToString());
|
var revertData = responseDataObj;
|
//标记上一次是不是同一个账号登陆
|
UserCenter.UserCenterResourse.ResidenceOption.TheSameLoginAccount = Config.Instance.Guid == revertData.Guid;
|
Config.Instance.Account = revertData.Account;
|
Config.Instance.MD5PWD = revertData.MD5PWD;
|
Config.Instance.Guid = revertData.Guid;
|
Config.Instance.LoginDateTime = DateTime.Now;
|
Config.Instance.Save();
|
return true;
|
}
|
else
|
{
|
return false;
|
}
|
}
|
|
#endregion
|
|
#region ■ 验证码登陆_________________________
|
|
/// <summary>
|
/// 验证码登陆
|
/// </summary>
|
/// <param name="i_account">账号</param>
|
/// <param name="i_verCode">验证码</param>
|
/// <param name="i_div">1:手机号 2:邮箱</param>
|
private async void LoginByVerCode(string i_account, string i_verCode, int i_div)
|
{
|
var pra = new SendDataToServer.LoginValidCodeOBJ()
|
{
|
Account = i_account,
|
Code = i_verCode,
|
Language = CommonPage.ZigBeeLanguage,
|
AreaCode = int.Parse(CommonPage.PhoneZoneStr)
|
};
|
var result = await CommonFormResouce.LoginByCode(pra);
|
//处理登陆成功的数据
|
this.AdjustLoginSuccessData(result, pra, i_account, string.Empty, i_div);
|
}
|
|
/// <summary>
|
/// 发送验证码
|
/// </summary>
|
/// <param name="btnSendCode">发送按钮</param>
|
/// <param name="account">账号</param>
|
/// <param name="i_div">1:手机号 2:邮箱</param>
|
/// <returns></returns>
|
private async System.Threading.Tasks.Task<bool> SendVerCode(NormalViewControl btnSendCode, string account, int i_div)
|
{
|
//不能再点击
|
btnSendCode.CanClick = false;
|
|
int companyInt = 0;
|
if (CommonPage.PhoneZoneStr == "86" || i_div == 2)
|
{
|
companyInt = CommonPage.Company;
|
}
|
else
|
{
|
companyInt = CommonPage.CompanyForINTERNETION;
|
}
|
var reqDtoSignPhone = new SendDataToServer.LoginSendVerCodeObj()
|
{
|
Account = account,
|
Company = companyInt,
|
AreaCode = int.Parse(CommonPage.PhoneZoneStr),
|
Language = CommonPage.ZigBeeLanguage
|
};
|
var requestRevertObj = await CommonFormResouce.LoginSendVerCode(reqDtoSignPhone);
|
if (requestRevertObj == null)
|
{
|
//请求服务器失败
|
CommonPage.Instance.FailureToServer();
|
return false;
|
}
|
var stateCodeStr = requestRevertObj.StateCode.ToUpper();
|
if (stateCodeStr == "SUCCESS")
|
{
|
//开启发送验证码的倒计时
|
this.StartSendVerCodeTimeOutThread(btnSendCode);
|
return true;
|
}
|
if (stateCodeStr == "PARAMETEROREMPTY")
|
{
|
//提供的参数错误
|
btnErrorMsg.TextID = R.MyInternationalizationString.PARAMETEROREMPTY;
|
}
|
else if (stateCodeStr == "ACCOUNTNOEXISTS")
|
{
|
//账号不存在
|
btnErrorMsg.TextID = R.MyInternationalizationString.ACCOUNTNOEXISTS;
|
}
|
else if (stateCodeStr == "SENDFAIL")
|
{
|
//验证码发送失败
|
btnErrorMsg.TextID = R.MyInternationalizationString.SENDFAIL;
|
}
|
else
|
{
|
//请求服务器失败
|
btnErrorMsg.TextID = R.MyInternationalizationString.RequestServerFailed;
|
//写Log
|
IMessageCommon.Current.GetMsgByRequestName("ZigbeeUsers/LoginSendVerCode", requestRevertObj, reqDtoSignPhone);
|
}
|
|
HdlThreadLogic.Current.RunThread(() =>
|
{
|
//发送失败后,5秒之后才能再次发送
|
int i = 0;
|
while (i <= 5)
|
{
|
i++;
|
System.Threading.Thread.Sleep(1000);
|
}
|
btnSendCode.CanClick = true;
|
});
|
|
return false;
|
}
|
|
/// <summary>
|
/// 开启发送验证码的倒计时
|
/// </summary>
|
/// <param name="btnSendCode"></param>
|
private void StartSendVerCodeTimeOutThread(NormalViewControl btnSendCode)
|
{
|
HdlThreadLogic.Current.RunThread(() =>
|
{
|
//后重发
|
string strText = Language.StringByID(R.MyInternationalizationString.SendVerificationCodeAgain);
|
int time = 60;
|
while (time > 0 && btnSendCode.Parent != null)
|
{
|
HdlThreadLogic.Current.RunMain(() =>
|
{
|
btnSendCode.Text = time + "s" + strText;
|
});
|
time--;
|
}
|
//倒计时完成之后,可以再次点击
|
btnSendCode.CanClick = true;
|
btnSendCode.TextID = R.MyInternationalizationString.SendVerificationCode;//获取验证码
|
});
|
}
|
|
#endregion
|
|
#region ■ 处理登陆成功的数据_________________
|
|
/// <summary>
|
/// 处理登陆成功的数据
|
/// </summary>
|
/// <param name="revertObj">云端返回的数据</param>
|
/// <param name="pra">接口请求参数</param>
|
/// <param name="i_account">账号</param>
|
/// <param name="i_psw">密码,验证码登陆时,设置为 string.Empty</param>
|
/// <param name="i_div">1:手机号 2:邮箱</param>
|
private async void AdjustLoginSuccessData(Common.ResponseEntity.ResponsePack revertObj, object pra,
|
string i_account, string i_psw, int i_div)
|
{
|
if (revertObj == null)
|
{
|
HdlThreadLogic.Current.RunMain(() =>
|
{
|
//请求服务器失败
|
CommonPage.Instance.FailureToServer();
|
CommonPage.Loading.Hide();
|
});
|
return;
|
}
|
var stateCodeStr = revertObj.StateCode.ToUpper();
|
//Error 不能直接从服务器取,只能根据状态码逐一判断
|
if (stateCodeStr == "SUCCESS")
|
{
|
HdlThreadLogic.Current.RunMain(() =>
|
{
|
//显示启动页
|
HomePage.Instance.ShowLoginLoadView();
|
});
|
//存储数据
|
var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.UserLoginRes>(revertObj.ResponseData.ToString());
|
var revertData = responseDataObj;
|
Config.ReFresh();
|
//标记上一次是不是同一个账号登陆
|
UserCenterResourse.ResidenceOption.TheSameLoginAccount = Config.Instance.Guid == revertData.Guid;
|
Config.Instance.Account = revertData.Account;
|
Config.Instance.Password = i_psw;
|
Config.Instance.MD5PWD = revertData.MD5PWD;
|
Config.Instance.Guid = revertData.Guid;
|
Config.Instance.LoginDateTime = DateTime.Now;
|
Config.Instance.LoginToken = revertData.Token;
|
Config.Instance.Save();
|
|
var resultRegID = await CommonPage.Instance.PushRegID();
|
var homes = await House.GetHomeLists();
|
//刷新个人中心的内存及线程
|
await UserCenterLogic.InitUserCenterMenmoryAndThread();
|
//启动ZigBee
|
ZigBee.Common.Application.Init();
|
|
HdlThreadLogic.Current.RunMain(() =>
|
{
|
CommonPage.Loading.Hide();
|
this.RemoveFromParent();
|
CommonPage.Instance.RemoveViewByTag("Login");
|
UserPage.Instance.Fresh();
|
});
|
return;
|
}
|
//关闭转圈的
|
HdlThreadLogic.Current.RunMain(() =>
|
{
|
CommonPage.Loading.Hide();
|
if (stateCodeStr == "NOTVERIFY")
|
{
|
//未激活
|
btnErrorMsg.TextID = R.MyInternationalizationString.NOTVERIFY;
|
}
|
else if (stateCodeStr == "NOTENABLE")
|
{
|
//该用户属于调试账号,并未启用
|
btnErrorMsg.TextID = R.MyInternationalizationString.NOTENABLE;
|
}
|
else if (stateCodeStr == "PARAMETEROREMPTY")
|
{
|
//提供的参数错误
|
btnErrorMsg.TextID = R.MyInternationalizationString.PARAMETEROREMPTY;
|
}
|
else if (stateCodeStr == "VALIDCODEANDPHONENOEQUAL")
|
{
|
//验证码错误,请重新输入
|
btnErrorMsg.TextID = R.MyInternationalizationString.VALIDCODEANDPHONENOEQUAL;
|
}
|
else if (stateCodeStr == "USERNAMEORPWDERROR")
|
{
|
//账号或密码错误
|
btnErrorMsg.TextID = R.MyInternationalizationString.USERNAMEORPWDERROR;
|
}
|
else if (stateCodeStr == "ACCOUNTNOEXISTS")
|
{
|
//账号不存在
|
btnErrorMsg.TextID = R.MyInternationalizationString.ACCOUNTNOEXISTS;
|
}
|
else if (stateCodeStr == "NORECORD" && i_psw == string.Empty)
|
{
|
//请先获取验证码
|
btnErrorMsg.TextID = R.MyInternationalizationString.NORECORD;
|
}
|
else if (stateCodeStr == "YOUDATANOISLOCALREGION")
|
{
|
//不在本区域,需要重定向区域后再次请求登录
|
var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.UserLoginLocalRegionRes>(revertObj.ResponseData.ToString());
|
CommonPage.RequestHttpsHost = responseDataObj.RegionServer;
|
if (i_psw != string.Empty)
|
{
|
//再次登录
|
this.LoginByAccountAndPsw(i_account, i_psw, i_div);
|
}
|
}
|
else
|
{
|
btnErrorMsg.TextID = R.MyInternationalizationString.RequestServerFailed;
|
//写Log
|
if (pra is SendDataToServer.LoginObj)
|
{
|
((SendDataToServer.LoginObj)pra).Password = "*********";
|
IMessageCommon.Current.GetMsgByRequestName("ZigbeeUsers/Login", revertObj, pra);
|
}
|
else
|
{
|
IMessageCommon.Current.GetMsgByRequestName("ZigbeeUsers/LoginValidCode", revertObj, pra);
|
}
|
}
|
});
|
}
|
|
#endregion
|
|
#region ■ 一般方法___________________________
|
|
/// <summary>
|
/// 检测隐私协议
|
/// </summary>
|
/// <returns></returns>
|
private bool CheckPrivacyPolicy()
|
{
|
if (isAgreePrivacyPolicy == false)
|
{
|
//请先阅读并同意《隐私权政策》和《服务条款》
|
var btnMsg = new ShowMsgControl(ShowMsgType.Remind, Language.StringByID(R.MyInternationalizationString.uPleaseReadAndAgreePrivacyPolicyMsg));
|
btnMsg.Show();
|
return false;
|
}
|
return true;
|
}
|
|
#endregion
|
}
|
}
|