Files
xxcpzs/XXCpzs/Views/MainPage.xaml.cs
2020-04-03 11:55:02 +08:00

98 lines
3.7 KiB
C#

using RestSharp;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Threading.Tasks;
using System.Xml;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
using XXCpzs.Models;
using XXCpzs.Services;
namespace XXCpzs.Views
{
[DesignTimeVisible(false)]
public partial class MainPage : MasterDetailPage
{
Dictionary<int, NavigationPage> MenuPages = new Dictionary<int, NavigationPage>();
public MainPage()
{
InitializeComponent();
MasterBehavior = MasterBehavior.Popover;
MenuPages.Add((int)MenuItemType.Browse, (NavigationPage)Detail);
}
public ServerVersion GetServerVer()
{
string version = "1.00";
string upAddresss = null;
string upContent = null;
string upTime = null;
var client = new RestClient{
BaseUrl = new Uri("http://cpzs.xixingwl.cn/cpzs.php/index/update/t/Droid.html"),
Timeout = 60000
};
var request = new RestRequest{
Timeout = 30000,
Method = Method.POST
};
request.AddHeader("Content-Type", "text/html,application/xhtml+xml,application/xml;q=0.9");
request.AddHeader("Authorization", "Bearer123456");
IRestResponse response2 = client.Execute(request);
if (response2.IsSuccessful){
XmlDocument sync = new XmlDocument();
sync.LoadXml(response2.Content.Trim());
XmlNode think = sync.SelectSingleNode("think");
version = think.SelectSingleNode("Version").InnerText;
upAddresss = think.SelectSingleNode(" UpAddresss").InnerText;
upContent = think.SelectSingleNode(" UpContent").InnerText;
upTime = think.SelectSingleNode(" UpTime").InnerText;
}
return new ServerVersion() { Version = version, UpAddresss = upAddresss ,UpContent = upContent, UpTime = upTime };
}
public async Task NavigateFromMenu(int id)
{
if (!MenuPages.ContainsKey(id))
{
switch (id)
{
case (int)MenuItemType.Browse:
MenuPages.Add(id, new NavigationPage(new PageMain()));
break;
case (int)MenuItemType.About:
MenuPages.Add(id, new NavigationPage(new AboutPage()));
break;
case (int)MenuItemType.Upgrade:
// var ServerVer = GetServerVer();
//string LocaVer = DependencyService.Get<ICommonService>().GetVersion();
//if (int.Parse(ServerVer.Version) > int.Parse(LocaVer))
//{
// bool answer = await DisplayAlert("检测到新的版本", "是否立即更新?" + ServerVer.Version, "Yes", "No");
// if (answer)
// {
// DependencyService.Get<ICommonService>().UpdateApp(ServerVer.UpAddresss);
// }
//}
break;
case (int)MenuItemType.CloseApp:
DependencyService.Get<ICommonService>().CloseApp();
break;
}
}
var newPage = MenuPages[id];
if (newPage != null && Detail != newPage)
{
Detail = newPage;
if (Device.RuntimePlatform == Device.Android)
await Task.Delay(100);
IsPresented = false;
}
}
}
}