Exemplo n.º 1
0
        /// <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);
            }
        }
Exemplo n.º 2
0
        /// <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;
            }
        }
Exemplo n.º 3
0
        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();
        }