using System;
|
using Shared;
|
using HDL_ON.UI.CSS;
|
using System.Net;
|
using System.Text;
|
using HDL_ON.DAL.Server;
|
using System.Threading.Tasks;
|
|
namespace HDL_ON.UI
|
{
|
/// <summary>
|
/// 关于页面
|
/// </summary>
|
public class AboutOnPage : FrameLayout
|
{
|
/// <summary>
|
///
|
/// </summary>
|
FrameLayout bodyView;
|
|
/// <summary>
|
/// 新版本的版本号,查询到新版本才赋值
|
/// </summary>
|
string newAppVersion;
|
/// <summary>
|
/// 新版本的下载地址
|
/// iOS 默认为苹果商店地址
|
/// Android 云端返回地址
|
/// </summary>
|
string newAppVersionUrl = "";
|
/// <summary>
|
/// 版本更新ListCellView
|
/// </summary>
|
ListCellView versionUpdateView;
|
|
/// <summary>
|
///
|
/// </summary>
|
public AboutOnPage()
|
{
|
bodyView = this;
|
}
|
|
/// <summary>
|
///
|
/// </summary>
|
public void LoadPage()
|
{
|
new TopViewDiv(bodyView, Language.StringByID(StringId.About)).LoadTopView();
|
this.BackgroundColor = CSS_Color.MainBackgroundColor;
|
|
Button btnOnIcon = new Button()
|
{
|
Gravity = Gravity.CenterHorizontal,
|
Y = Application.GetRealWidth(106),
|
Width = Application.GetRealWidth(58),
|
Height = Application.GetRealWidth(58),
|
UnSelectedImagePath = "OnIcon.png",
|
};
|
bodyView.AddChidren(btnOnIcon);
|
|
Button btnOnTitle = new Button()
|
{
|
//Gravity = Gravity.CenterHorizontal,
|
Y = Application.GetRealWidth(184),
|
Height = Application.GetRealWidth(28),
|
TextAlignment = TextAlignment.Center,
|
Text = "荣悦智能",
|
TextColor = CSS_Color.FirstLevelTitleColor,
|
TextSize = CSS_FontSize.EmphasisFontSize_Secondary,
|
IsBold = true,
|
};
|
bodyView.AddChidren(btnOnTitle);
|
|
|
Button btnOnVersion = new Button()
|
{
|
Y = btnOnTitle.Bottom,
|
Height = Application.GetRealWidth(25),
|
TextAlignment = TextAlignment.Center,
|
TextColor = CSS_Color.TextualColor,
|
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
|
Text = Language.StringByID(StringId.VersionNumber) + " " + MainPage.VersionString,
|
};
|
bodyView.AddChidren(btnOnVersion);
|
if(HttpUtil.GlobalRequestHttpsHost == "https://test-gz.hdlcontrol.com")
|
{
|
btnOnVersion.Text += "(Test Server)";
|
}
|
|
|
var lineView = new FrameLayout()
|
{
|
Y = Application.GetRealHeight(281),
|
Height = Application.GetRealHeight(1),
|
BackgroundColor = CSS_Color.DividingLineColor,
|
};
|
bodyView.AddChidren(lineView);
|
|
#region 版本更新
|
versionUpdateView = new ListCellView()
|
{
|
Y = lineView.Bottom,
|
};
|
#if __ANDROID__
|
bodyView.AddChidren(versionUpdateView);
|
CheckIfNeedUpdateAsync(false);
|
#endif
|
versionUpdateView.BtnTilte.TextID = StringId.VersionUpdate;
|
Action versionUpdateAction = () =>
|
{
|
OpenUrl();
|
};
|
versionUpdateView.GoAction = versionUpdateAction;
|
#endregion
|
|
|
#region 软件服务协议
|
var serviceAgreementView = new ListCellView()
|
{
|
#if __ANDROID__
|
Y = versionUpdateView.Bottom,
|
#else
|
Y = lineView.Bottom,
|
#endif
|
};
|
bodyView.AddChidren(serviceAgreementView);
|
serviceAgreementView.BtnTilte.TextID = StringId.UserAgreement;
|
Action serviceAgreementAction = () => {
|
string url = Constant.URL_USERAGREEMENT;
|
string titleStr = Language.StringByID(StringId.UserAgreement);
|
new WebViewDialog().LoadPageWithdrawalConsent(titleStr, url);
|
};
|
serviceAgreementView.GoAction = serviceAgreementAction;
|
#endregion
|
|
#region 用户信息保护协议
|
var privacyPolicyView = new ListCellView()
|
{
|
Y = serviceAgreementView.Bottom,
|
};
|
bodyView.AddChidren(privacyPolicyView);
|
privacyPolicyView.BtnTilte.TextID = StringId.PrivacyPolicy;
|
Action privacyPolicyAction = () => {
|
string url = Constant.URL_PRIVACYPOLICY;
|
string titleStr = Language.StringByID(StringId.PrivacyPolicy);
|
new WebViewDialog().LoadPageWithdrawalConsent(titleStr, url);
|
};
|
#endregion
|
privacyPolicyView.GoAction = privacyPolicyAction;
|
|
|
}
|
|
|
/// <summary>
|
/// 判断是否需要调整新版本下载地址
|
/// </summary>
|
void OpenUrl()
|
{
|
if (!string.IsNullOrEmpty(newAppVersion)&& newAppVersion.Contains("http"))
|
{
|
HDLUtils.OpenUrl(newAppVersionUrl);
|
}
|
else
|
{
|
Utlis.ShowTip(Language.StringByID(StringId.IsLatestVersion));
|
}
|
}
|
|
/// <summary>
|
/// 检测是否需要更新
|
/// Android等接口实现
|
/// </summary>
|
/// <returns></returns>
|
void CheckIfNeedUpdateAsync(bool isTip = false)
|
{
|
new System.Threading.Thread(() =>
|
{
|
newAppVersion = CanUpdateAsync();
|
Application.RunOnMainThread(() =>
|
{
|
if (!string.IsNullOrEmpty(newAppVersion))
|
{
|
//发现新版本
|
versionUpdateView.BtnSubtitle.TextColor = CSS_Color.MainColor;
|
versionUpdateView.BtnSubtitle.Text = Language.StringByID(StringId.DiscoverNewVersion) + "(" + newAppVersion + ")";
|
}
|
else
|
{
|
//已经是最新版本
|
versionUpdateView.BtnSubtitle.TextColor = CSS_Color.PromptingColor1;
|
versionUpdateView.BtnSubtitle.Text = Language.StringByID(StringId.IsLatestVersion);
|
}
|
});
|
|
})
|
{ IsBackground = true }.Start();
|
}
|
|
/// <summary>
|
/// 检查版本
|
/// </summary>
|
/// <returns></returns>
|
string CanUpdateAsync()
|
{
|
try
|
{
|
var versionResult = CheckAppVersion();
|
if (versionResult == null)
|
{
|
return "";
|
}
|
var newVersion = versionResult.version;
|
if (newVersion.CompareTo(MainPage.VersionString) > 0)
|
{
|
newAppVersionUrl = versionResult.packageUrl;
|
return newVersion;
|
}
|
return "";
|
}
|
catch (Exception ex)
|
{
|
return "";
|
}
|
}
|
|
/// <summary>
|
/// 检测新版本
|
/// </summary>
|
/// <returns>The https app version async.</returns>
|
private AppVersionResNew CheckAppVersion()
|
{
|
try
|
{
|
var result = new HttpServerRequest().CheckAppVersion();
|
if (result.Code == StateCode.SUCCESS)
|
{
|
if (result.Data == null)
|
{
|
return null;
|
}
|
|
var responeData = Newtonsoft.Json.JsonConvert.DeserializeObject<AppVersionResNew>(result.Data.ToString());
|
return responeData;
|
}
|
return null;
|
}
|
catch (Exception ex)
|
{
|
return null;
|
}
|
}
|
|
}
|
}
|