/// <summary> /// 최종 사용자가 응용 프로그램을 정상적으로 시작할 때 호출됩니다. 다른 진입점은 /// 특정 파일을 열거나, 검색 결과를 표시하는 등 응용 프로그램을 시작할 때 /// 사용됩니다. /// </summary> /// <param name="args">시작 요청 및 프로세스에 대한 정보입니다.</param> protected override async void OnLaunched(LaunchActivatedEventArgs args) { // Do not repeat app initialization when already running, just ensure that // the window is active if (args.PreviousExecutionState == ApplicationExecutionState.Running) { if (!String.IsNullOrEmpty(args.Arguments)) { ((Frame)Window.Current.Content).Navigate(typeof(ItemDetailPage), args.Arguments); } Window.Current.Activate(); return; } await RecipeDataSource.LoadLocalDataAsync();// 요리법 자료들을 연결 // Clear tiles and badges TileUpdateManager.CreateTileUpdaterForApplication().Clear(); BadgeUpdateManager.CreateBadgeUpdaterForApplication().Clear(); // Register for push notifications var profile = NetworkInformation.GetInternetConnectionProfile(); if (profile.GetNetworkConnectivityLevel() == NetworkConnectivityLevel.InternetAccess) { var channel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync(); var buffer = CryptographicBuffer.ConvertStringToBinary(channel.Uri, BinaryStringEncoding.Utf8); var uri = CryptographicBuffer.EnetdcodeToBase64String(buffer); var client = new HttpClient(); try { var response = await client.GetAsync(new Uri("http://ContosoRecipes8.cloudapp.net?uri=" + uri + "&type=tile")); if (!response.IsSuccessStatusCode) { var dialog = new MessageDialog("Unable to open push notification channel"); dialog.ShowAsync(); } } catch (HttpRequestException) { var dialog = new MessageDialog("Unable to open push notification channel"); dialog.ShowAsync(); } } // Create a Frame to act as the navigation context and associate it with // a SuspensionManager key var rootFrame = new Frame(); SuspensionManager.RegisterFrame(rootFrame, "AppFrame"); // If the app was activated from a secondary tile, show the recipe if (!String.IsNullOrEmpty(args.Arguments)) { rootFrame.Navigate(typeof(ItemDetailPage), args.Arguments); Window.Current.Content = rootFrame; Window.Current.Activate(); return; } if (args.PreviousExecutionState == ApplicationExecutionState.Terminated) { // Restore the saved session state only when appropriate await SuspensionManager.RestoreAsync(); } if (rootFrame.Content == null) { // When the navigation stack isn't restored navigate to the first page, // 필요한 정보를 탐색 매개 변수로 전달하여 새 페이지를 // 구성합니다. if (!rootFrame.Navigate(typeof(GroupedItemsPage), "AllGroups")) { throw new Exception("Failed to create initial page"); } } // 프레임을 현재 창에 배치하고 프레임이 활성 상태인지 확인합니다. Window.Current.Content = rootFrame; Window.Current.Activate(); }