private async void Load_HTML(Uri uri) { (bool isSucceed, string result) = await DataHelper.GetHtmlAsync(uri, "XMLHttpRequest"); if (isSucceed) { JObject o; try { o = JObject.Parse(result); MarkdownText.Text = CSStoMarkDown(o.TryGetValue("html", out JToken token) ? token.ToString() : o.TryGetValue("description", out JToken desc) ? desc.ToString() : "#网络错误"); TitleBar.Title = o.TryGetValue("title", out JToken Title) ? Title.ToString() : null; } catch { Frame.GoBack(); UIHelper.OpenLinkAsync(uri.ToString()); } } else { Frame.GoBack(); } TitleBar.HideProgressRing(); }
protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); TitleBar.ShowProgressRing(); FeedReplyList.ItemsSource = replys; var reply = e.Parameter as FeedReplyModel; TitleBar.Title = $"回复({reply.Replynum})"; id = reply.Id; reply.ShowreplyRows = false; replys.Add(reply); GetReplys(false); TitleBar.HideProgressRing(); Task.Run(async() => { await Task.Delay(200); await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { VScrollViewer = VisualTree.FindDescendantByName(FeedReplyList, "ScrollViewer") as ScrollViewer; VScrollViewer.ViewChanged += VScrollViewer_ViewChanged; }); }); }
private async void GetReplys(bool isRefresh) { TitleBar.ShowProgressRing(); int page = isRefresh ? 1 : ++this.page; var array = (JArray)await DataHelper.GetDataAsync(DataUriType.GetReplyReplies, id, page, page > 1?$"&lastItem={lastItem}" : string.Empty); if (array != null && array.Count > 0) { if (isRefresh) { VScrollViewer?.ChangeView(null, 0, null); var d = (from a in replys from b in array where a.Id == b.Value <int>("id") select a).ToArray(); foreach (var item in d) { replys.Remove(item); } for (int i = 0; i < array.Count; i++) { replys.Insert(i + 1, new FeedReplyModel((JObject)array[i])); } } else { foreach (JObject item in array) { replys.Add(new FeedReplyModel(item, false)); } lastItem = array.Last.Value <int>("id"); } } else if (!isRefresh) { this.page--; } TitleBar.HideProgressRing(); }