/// <summary> /// 尝试从存储读取Cookie,尝试更新Main。 /// </summary> public async void SelfCheckAndInit() { gridMain.Visibility = Visibility.Visible; gridSecond.Visibility = Visibility.Collapsed; JSCodeString.SetWebView(webViewMain); WebSetUpdate(true, false, false, false); ShowLoading("读取设置..."); bool isSettingsRead = await StorageManager.ReadSettings(); if (StorageManager.AppSettings.isFirstIn || StorageManager.AppSettings.version != "1.4.3") { ContentNewDialog cnd = new ContentNewDialog(); ContentDialogResult cdr2 = await cnd.ShowAsync(); if (cdr2 == ContentDialogResult.Secondary) { StorageManager.AppSettings.isFirstIn = false; StorageManager.AppSettings.version = "1.4.3"; } ShowLoading("更新设置..."); await StorageManager.SaveSettings(); } if (!isSettingsRead) { await StorageManager.SaveSettings(); } ShowLoading("读取Edit设置..."); await StorageManager.ReadEditSettings(); if (Window.Current.Bounds.Width < 1100) { textUserName.Text = "您的窗口过窄"; } Uri[] uris = { new Uri("ms-appx:///Assets/8-5-4.jpg"), new Uri("ms-appx:///Assets/8-5-5.jpg"), new Uri("ms-appx:///Assets/8-5-6.jpg"), new Uri("ms-appx:///Assets/8-5-1.jpg"), new Uri("ms-appx:///Assets/8-5-2.jpg"), new Uri("ms-appx:///Assets/8-5-3.jpg") }; Random r = new Random(); int i = r.Next() % 6; ShowLoading("加载背景..."); try { StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(uris[i]); IRandomAccessStream stream = await file.OpenReadAsync(); //打开读取流 BitmapImage img = new BitmapImage(); await img.SetSourceAsync(stream); //从流产生BitmapImage ImageBrush ib = new ImageBrush(); //新建ImageBrush画刷 ib.ImageSource = img; ib.Stretch = Stretch.UniformToFill; //设置拉伸样式 this.Background = ib; //如上设置刚才创建的ImageBrush //Background是一个Brush类型属性 stream.Dispose(); } catch (Exception e) { await ShowMessageDialog("非关键异常", "自动背景图更换失败,请联系开发者\n" + e.Message); } isSelfChecked = true; ShowControls(); HelpStoryboard.Begin(); OpenFolderStoryboard.Begin(); ShowLoading("读取Cookie..."); string cookieGet = await StorageManager.GetCookieTry(); if (cookieGet != null) { if (!ExpManager.SetCookie(cookieGet)) { return; } ShowLoading("尝试更新个人信息..."); bool getSucceed = await UpdateMain(); if (!getSucceed) { await ShowMessageDialog("主页获取不成功", "如果不是网络问题,那可能是BDUSS已经失效。(是否有退出登录操作?)"); } HideLoading(); } else { buttonSetCookie_Click(null, null); } }
/// <summary> /// 设置按钮状态,弹窗请求输入Cookie,设置Cookie,尝试更新Main。 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void buttonSetCookie_Click(object sender, RoutedEventArgs e) { buttonSetCookie.IsEnabled = false; buttonSetCookieProgress.IsActive = true; buttonSetCookieProgress.Visibility = Visibility.Visible; ShowLoading("Cookie设置流程中..."); ContentWelcomeDialog cwd = new ContentWelcomeDialog(); ContentDialogResult resultCwd = await cwd.ShowAsync(); if (resultCwd == ContentDialogResult.Primary) { ContentTeachDialog ctd = new ContentTeachDialog(); await ctd.ShowAsync(); ContentHelpDialog chd = new ContentHelpDialog(); await chd.ShowAsync(); } ContentSetCookieDialog scd = new ContentSetCookieDialog(); ContentDialogResult cdr = await scd.ShowAsync(); HideLoading(); if (cdr == ContentDialogResult.None) { ShowMessageDialog("设置取消", "设置取消,保持原状。"); buttonSetCookie.IsEnabled = true; buttonSetCookieProgress.IsActive = false; buttonSetCookieProgress.Visibility = Visibility.Collapsed; return; } if (scd.userInputCookie.Trim() == "") { ShowMessageDialog("输入为空", "设置取消,保持原状。"); buttonSetCookie.IsEnabled = true; buttonSetCookieProgress.IsActive = false; buttonSetCookieProgress.Visibility = Visibility.Collapsed; return; } bool isCookieOK = ExpManager.SetCookie(scd.userInputCookie); if (!isCookieOK) { ShowMessageDialog("Cookie添加", ExpManager.setcookieFailedInfo); buttonSetCookie.IsEnabled = true; buttonSetCookieProgress.IsActive = false; buttonSetCookieProgress.Visibility = Visibility.Collapsed; return; } VisualStateManager.GoToState(buttonSetCookie, "stateWaiting", false); bool isValid = await UpdateMain(); VisualStateManager.GoToState(buttonSetCookie, "stateNormal", false); buttonSetCookie.IsEnabled = true; buttonSetCookieProgress.IsActive = false; buttonSetCookieProgress.Visibility = Visibility.Collapsed; if (isValid) { await StorageManager.SaveCookie(ExpManager.cookie); buttonSetCookieText.Text = "√ Cookie"; await ShowMessageDialog("设置完成", "Cookie有效,可以更新信息了。\n点击头像链接到个人中心。"); ContentTipsDialog scd3 = new ContentTipsDialog(); await scd3.ShowAsync(); } else { ShowMessageDialog("验证Cookie", "Cookie无效,请重新设置"); } HideLoading(); }