/// <summary> /// 初始化放送站点及拆分按钮 /// </summary> /// <param name="id"></param> /// <returns></returns> private async Task InitAirSites(string id) { SitesMenuFlyout.Items.Clear(); var airSites = await BangumiData.GetAirSitesByBangumiIdAsync(id); if (airSites.Count != 0) { foreach (var site in airSites) { MenuFlyoutItem menuFlyoutItem = new MenuFlyoutItem { Text = site.SiteName, DataContext = site.Url }; menuFlyoutItem.Click += SiteMenuFlyoutItem_Click; SitesMenuFlyout.Items.Add(menuFlyoutItem); } } else { MenuFlyoutItem menuFlyoutItem = new MenuFlyoutItem { Text = "无放送站点" }; SitesMenuFlyout.Items.Add(menuFlyoutItem); } }
/// <summary> /// 初始化放送站点及拆分按钮 /// </summary> private async Task InitAirSites() { SitesMenuFlyout.Items.Clear(); SelectedTextBlock.Text = ""; SelectedTextBlock.DataContext = null; var airSites = await BangumiData.GetAirSitesByBangumiIdAsync(ViewModel.SubjectId); if (airSites.Count != 0) { foreach (var site in airSites) { MenuFlyoutItem menuFlyoutItem = new MenuFlyoutItem { Text = site.SiteName, DataContext = site.Url }; menuFlyoutItem.Click += SiteMenuFlyoutItem_Click; SitesMenuFlyout.Items.Add(menuFlyoutItem); } SelectedTextBlock.Text = airSites[0].SiteName; SelectedTextBlock.DataContext = airSites[0].Url; } }
private async void OnLaunchedOrActivated(IActivatedEventArgs e) { Frame rootFrame = Window.Current.Content as Frame; // 不要在窗口已包含内容时重复应用程序初始化, // 只需确保窗口处于活动状态 if (rootFrame == null) { // 创建要充当导航上下文的框架,并导航到第一页 rootFrame = new Frame(); rootFrame.NavigationFailed += OnNavigationFailed; if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) { //TODO: 从之前挂起的应用程序加载状态 } // 将框架放在当前窗口中 Window.Current.Content = rootFrame; } // 处理正常启动 if (e is LaunchActivatedEventArgs launchActivatedArgs && launchActivatedArgs.PrelaunchActivated == false) { if (rootFrame.Content == null) { // 当导航堆栈尚未还原时,导航到第一页, // 并通过将所需信息作为导航参数传入来配置 // 参数 rootFrame.Navigate(typeof(MainPage), launchActivatedArgs.Arguments); } } // Handle toast activation if (e is ToastNotificationActivatedEventArgs toastActivationArgs) { if (rootFrame.Content == null) { rootFrame.Navigate(typeof(MainPage)); } // 等待加载完成 while (true) { if (MainPage.RootPage.IsLoaded) { break; } await Task.Delay(500); } // Parse the query string (using QueryString.NET) QueryString args = QueryString.Parse(toastActivationArgs.Argument); if (args.Contains("action")) { string id = string.Empty; // See what action is being requested switch (args["action"]) { // Open the subject case "viewSubject": id = args["subjectId"]; MainPage.RootPage.ResetFrameBackStack(); MainPage.RootPage.NavigateToPage(typeof(EpisodePage), args["subjectId"], null); break; case "gotoPlaySite": id = args["url"]; var sites = await BangumiData.GetAirSitesByBangumiIdAsync(id); await Launcher.LaunchUriAsync(new Uri(args["url"])); var episode = JsonConvert.DeserializeObject <EpisodeForSort>(args["episode"]); ToastNotificationHelper.Toast("看完了吗?", $"Ep.{episode.Sort} {Converters.StringOneOrTwo(episode.NameCn, episode.Name)}", "看完了!看完了!", "markEpWatched", "episodeId", episode.Id.ToString(), string.Empty, string.Empty, Microsoft.Toolkit.Uwp.Notifications.ToastActivationType.Background, true); break; } } } // 处理其它激活方式 // 确保当前窗口处于活动状态 Window.Current.Activate(); }