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 MenuPages = new Dictionary(); 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().GetVersion(); //if (int.Parse(ServerVer.Version) > int.Parse(LocaVer)) //{ // bool answer = await DisplayAlert("检测到新的版本", "是否立即更新?" + ServerVer.Version, "Yes", "No"); // if (answer) // { // DependencyService.Get().UpdateApp(ServerVer.UpAddresss); // } //} break; case (int)MenuItemType.CloseApp: DependencyService.Get().CloseApp(); break; } } var newPage = MenuPages[id]; if (newPage != null && Detail != newPage) { Detail = newPage; if (Device.RuntimePlatform == Device.Android) await Task.Delay(100); IsPresented = false; } } } }