using System;
|
using Shared;
|
using HDL_ON.UI.CSS;
|
using System.Net;
|
using System.Text;
|
using HDL_ON.DAL.Server;
|
using System.Threading.Tasks;
|
using HDL_ON.FengLinVideo;
|
|
namespace HDL_ON.UI
|
{
|
/// <summary>
|
/// 关于页面
|
/// </summary>
|
public class AboutOnPage : FrameLayout
|
{
|
/// <summary>
|
///
|
/// </summary>
|
FrameLayout bodyView;
|
/// <summary>
|
/// 版本更新ListCellView
|
/// </summary>
|
ListCellView versionUpdateView;
|
|
/// <summary>
|
/// 新版本的版本号,查询到新版本才赋值
|
/// </summary>
|
string newAppVersion;
|
/// <summary>
|
/// 新版本的下载地址
|
/// iOS 默认为苹果商店地址
|
/// Android 云端返回地址
|
/// </summary>
|
string newAppVersionUrl = "";
|
|
/// <summary>
|
///
|
/// </summary>
|
public AboutOnPage()
|
{
|
bodyView = this;
|
}
|
|
/// <summary>
|
///
|
/// </summary>
|
public void LoadPage()
|
{
|
new TopViewDiv(bodyView, Language.StringByID(StringId.About)).LoadTopView();
|
|
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 = "ON+",
|
TextColor = CSS_Color.FirstLevelTitleColor,
|
TextSize = CSS_FontSize.EmphasisFontSize_Secondary,
|
IsBold = true,
|
};
|
bodyView.AddChidren(btnOnTitle);
|
|
#if DEBUG
|
btnOnIcon.MouseUpEventHandler += (sender, e) =>
|
{
|
ESOnVideo.Current.Test();
|
};
|
|
btnOnTitle.MouseUpEventHandler += (sender, e) =>
|
{
|
ESOnVideo.Current.Test(false);
|
};
|
|
#endif
|
|
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);
|
|
|
var lineView = new FrameLayout()
|
{
|
Y = Application.GetRealHeight(281),
|
Height = Application.GetRealHeight(1),
|
BackgroundColor = CSS_Color.DividingLineColor,
|
};
|
bodyView.AddChidren(lineView);
|
|
#region 功能介绍
|
var functionView = new ListCellView()
|
{
|
Y = lineView.Bottom,
|
};
|
bodyView.AddChidren(functionView);
|
functionView.BtnTilte.TextID = StringId.FunctionIntroduced;
|
Action functionAction = () =>
|
{
|
var mPage = new FunctionIntroductionPage();
|
MainPage.BasePageView.AddChidren(mPage);
|
mPage.LoadPage();
|
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
|
};
|
functionView.GoAction = functionAction;
|
#endregion
|
|
#region 投诉
|
var complaintsView = new ListCellView()
|
{
|
Y = functionView.Bottom,
|
};
|
bodyView.AddChidren(complaintsView);
|
complaintsView.BtnTilte.TextID = StringId.Complaints;
|
Action complaintsAction = () =>
|
{
|
var mPage = new ComplaintsPage();
|
MainPage.BasePageView.AddChidren(mPage);
|
mPage.LoadPage();
|
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
|
};
|
complaintsView.GoAction = complaintsAction;
|
#endregion
|
|
#region 版本更新
|
versionUpdateView = new ListCellView()
|
{
|
Y = complaintsView.Bottom,
|
};
|
bodyView.AddChidren(versionUpdateView);
|
versionUpdateView.BtnTilte.TextID = StringId.VersionUpdate;
|
Action versionUpdateAction = () =>
|
{
|
OpenUrl();
|
//TestDDDDD();
|
//HDLCommon.Current.CheckIfNeedForceUpdate();
|
};
|
versionUpdateView.GoAction = versionUpdateAction;
|
#endregion
|
|
CheckIfNeedUpdateAsync();
|
}
|
|
|
/// <summary>
|
/// 判断是否需要调整新版本下载地址
|
/// </summary>
|
void OpenUrl()
|
{
|
if (!string.IsNullOrEmpty(newAppVersion))
|
{
|
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()
|
{
|
#if __IOS__
|
try
|
{
|
var versionResult = RequestHttpsiOSAppVersionAsync();
|
if (versionResult == null || versionResult.Results == null)
|
{
|
return "";
|
}
|
var results = Newtonsoft.Json.Linq.JArray.Parse(versionResult.Results.ToString());
|
if (results[0] == null)
|
{
|
return "";
|
}
|
var newVersion = results[0]["version"]?.ToString();
|
//var updateContent = results[0]["releaseNotes"]?.ToString();
|
if (newVersion.CompareTo(MainPage.VersionString) > 0)
|
{
|
newAppVersionUrl = Constant.URL_APPSTORE;
|
return newVersion;
|
}
|
return "";
|
}
|
catch
|
{
|
return "";
|
}
|
|
#else
|
try
|
{
|
var versionResult = CheckAppVersion();
|
if (versionResult == null)
|
{
|
return "";
|
}
|
var newVersion = versionResult.version;
|
if (newVersion.CompareTo(MainPage.VersionString) > 0)
|
{
|
newAppVersionUrl = versionResult.androidUrl;
|
return newVersion;
|
}
|
return "";
|
}
|
catch (Exception ex)
|
{
|
return "";
|
}
|
#endif
|
}
|
|
|
#if __IOS__
|
/// <summary>
|
/// 获取iOS-APP版本信息
|
/// </summary>
|
/// <returns>The https app version async.</returns>
|
ResultPack RequestHttpsiOSAppVersionAsync()
|
{
|
try
|
{
|
var webClient = new WebClient { };
|
var result = webClient.DownloadData("https://itunes.apple.com/cn/lookup?id=1532353432");
|
if (result == null)
|
{
|
return null;
|
}
|
return Newtonsoft.Json.JsonConvert.DeserializeObject<ResultPack>(Encoding.UTF8.GetString(result));
|
}
|
catch
|
{
|
return null;
|
}
|
}
|
|
//#else
|
|
|
|
|
#endif
|
|
/// <summary>
|
/// 检测新版本
|
/// </summary>
|
/// <returns>The https app version async.</returns>
|
private AppVersionRes CheckAppVersion()
|
{
|
try
|
{
|
var result = new HttpServerRequest().CheckAppVersion();
|
if (result.Code == StateCode.SUCCESS)
|
{
|
if (result.Data == null)
|
{
|
return null;
|
}
|
|
var responeData = Newtonsoft.Json.JsonConvert.DeserializeObject<AppVersionRes>(result.Data.ToString());
|
return responeData;
|
}
|
return null;
|
}
|
catch (Exception ex)
|
{
|
return null;
|
}
|
}
|
|
int updateType = 0;
|
void TestDDDDD()
|
{
|
updateType = 1;
|
|
UpdateDialogInfo forceUpdateInfo = new UpdateDialogInfo()
|
{
|
UpdateType = updateType,
|
NewVersionUrl = Constant.URL_APPSTORE,
|
NewVersion = "1.0.0925",
|
ReasonStr = "1、首页全新改版设计,UI更清晰 \n2、修复BUG \n3、新增音箱功能 \n3、新增音箱功能 \n3、新增音箱功能 \n3、新增音箱功能 \n3、新增音箱功能 \n3、新增音箱功能 \n3、新增音箱功能 \n3、新增音箱功能 \n3、新增音箱功能 \n3、新增音箱功能 \n3、新增音箱功能 \n3、新增音箱功能 \n3、新增音箱功能"
|
};
|
|
HDLCommon.Current.ShowForceUpdateDialog(forceUpdateInfo);
|
}
|
|
}
|
|
/// <summary>
|
/// 苹果商店查询响应包格式
|
/// </summary>
|
[System.Serializable]
|
public class ResultPack
|
{
|
public int ResultCount { get; set; }
|
public object Results { get; set; }
|
}
|
}
|