protected async override void OnActivated(IActivatedEventArgs args) { RegisterExceptionHandlingSynchronizationContext(); //bilibili://bangumi/season/21715 //bilibili://live/5619438 //bilibili://video/19239064 //bilibili://clip/1399466 //bilibili://pgc/review/11592?url_from_h5=1 点评 //bilibili://article/242568 //bilibili://music/detail/247991?name=2018%E5%B8%9D%E7%8E%96%E6%BC%94%E5%A5%8F%E8%AE%A1%E5%88%92%EF%BC%9A%E4%BA%A4%E5%93%8D%E7%BB%84%E6%9B%B2%E3%80%8C%E5%90%9B%E3%81%AE%E5%90%8D%E3%81%AF%E3%80%82%E3%80%8D&cover_url=http:%2F%2Fi0.hdslb.com%2Fbfs%2Fmusic%2F9892d28aa5858a571e4a832d314e2136211ad7f7.jpg&from=outer_h5 //bilibili://album/2403422 //bilibili://author/2622476 // bilibili://music/menu/detail/78723 if (args.Kind == ActivationKind.Protocol) { Frame rootFrame = Window.Current.Content as Frame; StartModel par = new StartModel() { StartType = StartTypes.HandelUri }; ProtocolActivatedEventArgs eventArgs = args as ProtocolActivatedEventArgs; par.Par1 = eventArgs.Uri.AbsoluteUri; //string video = Regex.Match(eventArgs.Uri.AbsoluteUri, @"video/(\d+)").Groups[1].Value; //string video2 = Regex.Match(eventArgs.Uri.AbsoluteUri.Replace("/","").Replace("=",""), @"av(\d+)").Groups[1].Value; //string live = Regex.Match(eventArgs.Uri.AbsoluteUri, @"live/(\d+)").Groups[1].Value; //string minivideo = Regex.Match(eventArgs.Uri.AbsoluteUri, @"clip/(\d+)").Groups[1].Value; //string bangumi = Regex.Match(eventArgs.Uri.AbsoluteUri, @"season/(\d+)").Groups[1].Value; //string music = Regex.Match(eventArgs.Uri.AbsoluteUri, @"music/detail/(\d+)").Groups[1].Value; //string album = Regex.Match(eventArgs.Uri.AbsoluteUri, @"album/(\d+)").Groups[1].Value; //string article = Regex.Match(eventArgs.Uri.AbsoluteUri, @"article/(\d+)").Groups[1].Value; //string author = Regex.Match(eventArgs.Uri.AbsoluteUri, @"author/(\d+)").Groups[1].Value; if (rootFrame != null) { if (!await MessageCenter.HandelUrl(eventArgs.Uri.AbsoluteUri)) { ContentDialog contentDialog = new ContentDialog() { PrimaryButtonText = "确定", Title = "不支持跳转的地址" }; TextBlock textBlock = new TextBlock() { Text = eventArgs.Uri.AbsoluteUri, IsTextSelectionEnabled = true }; contentDialog.Content = textBlock; contentDialog.ShowAsync(); } } else { SYEngine.Core.Initialize(); // 创建要充当导航上下文的框架,并导航到第一页 rootFrame = new Frame(); rootFrame.NavigationFailed += OnNavigationFailed; // 将框架放在当前窗口中 Window.Current.Content = rootFrame; rootFrame.Navigate(typeof(SplashPage), par); Window.Current.Activate(); } //if (live.Length != 0) //{ // par.StartType = StartTypes.Live; // par.Par1 = live; // if (rootFrame!=null) // { // MessageCenter.SendNavigateTo(NavigateMode.Play, typeof(LiveRoomPage), live); // return; // } //} //if (video.Length != 0) //{ // par.StartType = StartTypes.Video; // par.Par1 = video; // if (rootFrame != null) // { // MessageCenter.SendNavigateTo(NavigateMode.Info, typeof(VideoViewPage), video); // return; // } //} //if (video2.Length != 0) //{ // par.StartType = StartTypes.Video; // par.Par1 = video2; // if (rootFrame != null) // { // MessageCenter.SendNavigateTo(NavigateMode.Info, typeof(VideoViewPage), video2); // return; // } //} //if (minivideo.Length != 0) //{ // par.StartType = StartTypes.MiniVideo; // par.Par1 = minivideo; // if (rootFrame != null) // { // MessageCenter.ShowMiniVideo(minivideo); // return; // } //} //if (bangumi.Length != 0) //{ // par.StartType = StartTypes.Bangumi; // par.Par1 = bangumi; // if (rootFrame != null) // { // MessageCenter.SendNavigateTo(NavigateMode.Info, typeof(BanInfoPage), bangumi); // return; // } //} //if (album.Length != 0) //{ // par.StartType = StartTypes.Album; // par.Par1 = album; // if (rootFrame != null) // { // MessageCenter.SendNavigateTo(NavigateMode.Info, typeof(DynamicInfoPage), album); // return; // } //} //if (music.Length != 0) //{ // par.StartType = StartTypes.Music; // par.Par1 = music; // if (rootFrame != null) // { // MessageCenter.SendNavigateTo(NavigateMode.Play, typeof(MusicInfoPage), music); // return; // } //} //if (musicmenu.Length != 0) //{ // par.StartType = StartTypes.Music; // par.Par1 = music; // if (rootFrame != null) // { // MessageCenter.SendNavigateTo(NavigateMode.Play, typeof(MusicInfoPage), music); // return; // } //} //if (article.Length != 0) //{ // par.StartType = StartTypes.Article; // par.Par1 = "https://www.bilibili.com/read/app/" + article; // if (rootFrame != null) // { // MessageCenter.SendNavigateTo(NavigateMode.Info, typeof(ArticleContentPage), "https://www.bilibili.com/read/app/" + article); // return; // } //} //if (author.Length != 0) //{ // par.StartType = StartTypes.User; // par.Par1 = author; // if (rootFrame != null) // { // MessageCenter.SendNavigateTo(NavigateMode.Info, typeof(UserInfoPage), author); // return; // } //} } }
protected override async void OnNavigatedTo(NavigationEventArgs e) { ChangeTheme(); timer = new DispatcherTimer(); timer.Interval = new TimeSpan(0, 0, 5); timer.Start(); timer.Tick += Timer_Tick; MessageCenter.ChanageThemeEvent += MessageCenter_ChanageThemeEvent; MessageCenter.MainNavigateToEvent += MessageCenter_MainNavigateToEvent; MessageCenter.InfoNavigateToEvent += MessageCenter_InfoNavigateToEvent; MessageCenter.PlayNavigateToEvent += MessageCenter_PlayNavigateToEvent; MessageCenter.HomeNavigateToEvent += MessageCenter_HomeNavigateToEvent; MessageCenter.BgNavigateToEvent += MessageCenter_BgNavigateToEvent;; MessageCenter.Logined += MessageCenter_Logined; MessageCenter.ChangeBg += MessageCenter_ChangeBg; MessageCenter_ChangeBg(); main_frame.Visibility = Visibility.Visible; NavigateTagList("NewFeed"); sp_View.SelectedItem = sp_View.MenuItems[0]; //Can_Nav = false; //bottom.SelectedIndex = 0; //Can_Nav = true; frame.Visibility = Visibility.Visible; frame.Navigate(typeof(BlankPage)); play_frame.Visibility = Visibility.Visible; play_frame.Navigate(typeof(BlankPage)); if (e.Parameter != null) { var m = e.Parameter as StartModel; switch (m.StartType) { case StartTypes.None: break; case StartTypes.Video: MessageCenter.SendNavigateTo(NavigateMode.Info, typeof(VideoViewPage), m.Par1); break; case StartTypes.Live: MessageCenter.SendNavigateTo(NavigateMode.Play, typeof(LiveRoomPage), m.Par1); break; case StartTypes.Bangumi: MessageCenter.SendNavigateTo(NavigateMode.Info, typeof(BanInfoPage), m.Par1); break; case StartTypes.MiniVideo: MessageCenter.ShowMiniVideo(m.Par1); break; case StartTypes.Web: MessageCenter.SendNavigateTo(NavigateMode.Info, typeof(WebPage), m.Par1); break; case StartTypes.Album: MessageCenter.SendNavigateTo(NavigateMode.Info, typeof(DynamicInfoPage), m.Par1); break; case StartTypes.Article: MessageCenter.SendNavigateTo(NavigateMode.Info, typeof(ArticleContentPage), m.Par1); break; case StartTypes.Music: MessageCenter.SendNavigateTo(NavigateMode.Info, typeof(MusicInfoPage), m.Par1); break; case StartTypes.User: MessageCenter.SendNavigateTo(NavigateMode.Info, typeof(UserInfoPage), m.Par1); break; case StartTypes.File: var files = m.Par3 as IReadOnlyList <IStorageItem>; List <PlayerModel> ls = new List <PlayerModel>(); int i = 1; foreach (StorageFile file in files) { ls.Add(new PlayerModel() { Mode = PlayMode.FormLocal, No = i.ToString(), VideoTitle = "", Title = file.DisplayName, Parameter = file, Aid = file.DisplayName, Mid = file.Path }); i++; } play_frame.Navigate(typeof(PlayerPage), new object[] { ls, 0 }); break; case StartTypes.HandelUri: if (!await MessageCenter.HandelUrl(m.Par1)) { ContentDialog contentDialog = new ContentDialog() { PrimaryButtonText = "确定", Title = "不支持跳转的地址" }; TextBlock textBlock = new TextBlock() { Text = m.Par1, IsTextSelectionEnabled = true }; contentDialog.Content = textBlock; await contentDialog.ShowAsync(); } break; default: break; } } if (SettingHelper.First) { TextBlock tx = new TextBlock() { Text = AppHelper.GetLastVersionStr(), IsTextSelectionEnabled = true, TextWrapping = TextWrapping.Wrap }; await new ContentDialog() { Content = tx, PrimaryButtonText = "知道了" }.ShowAsync(); SettingHelper.First = false; } account = new Account(); //检查登录状态 if (!string.IsNullOrEmpty(SettingHelper.AccessKey)) { if ((await account.CheckLoginState(ApiHelper.AccessKey)).success) { MessageCenter_Logined(); await account.SSO(ApiHelper.AccessKey); } else { var data = await account.RefreshToken(SettingHelper.AccessKey, SettingHelper.RefreshToken); if (!data.success) { Utils.ShowMessageToast("登录过期,请重新登录"); await Utils.ShowLoginDialog(); } } } if (SettingHelper.UseDASH && SystemHelper.GetSystemBuild() < 17763) { SettingHelper.UseDASH = false; } }