정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

방법: Windows Phone용 App Instant Answer와 통합

2012-02-09

Windows Phone 7.5 의 경우 Windows Phone 응용프로그램을 App Instant Answer에서 실행할 수 있습니다. App Instant Answer에는 관련 Windows Phone 응용프로그램에 대한 링크가 검색 결과와 함께 표시됩니다. App Instant Answer에서 실행된 응용프로그램은 실행을 유발한 검색어를 확인하고 즉시 이 검색어를 사용하여 풍부한 사용자 환경을 만듭니다.

이 항목에서는 응용프로그램이 App Instant Answer에서 실행되었는지 확인하는 기본 응용프로그램을 만드는 방법, 해당 검색어, App Instant Answer 실행을 시뮬레이션하는 방법에 대해 설명합니다. 응용프로그램과 검색 환경을 통합하는 다른 방법에 대한 내용은 Windows Phone의 검색 확장성 개요를 참조하십시오.

이 항목에서는 다음 주요 단계에 대해 설명합니다.

  1. UI 만들기

  2. App Instant Answer 실행 확인

  3. 응용프로그램 완성

  4. App Instant Answer 실행 시뮬레이션

참고참고:

다음 절차의 단계는 Windows Phone용 Visual Studio 2010 Express에 적용됩니다. Visual Studio 2010 Professional 또는 Visual Studio 2010 Ultimate용 추가 기능을 사용하는 경우에는 메뉴 명령이나 창 레이아웃에서 일부 소규모 변형이 나타날 수 있습니다.  

이 섹션에서는 App Instant Answer 매개 변수와 값을 표시할 기본 UI, 또는 응용프로그램이 App Instant Answer에 의해 실행되지 않았음을 나타내는 메시지를 만듭니다. 해당 TextBlock 컨트롤은 응용프로그램의 실행 방법에 따라 축소되거나 표시됩니다.

UI를 만들려면

  1. Windows Phone용 Visual Studio 2010 Express 에서 파일 | 새 프로젝트 메뉴 명령을 선택하여 새 프로젝트를 만듭니다.

  2. 새 프로젝트 창이 표시됩니다. Visual C# 템플릿을 확장하고 Windows Phone용 Silverlight 템플릿을 선택합니다.

  3. Windows Phone 응용프로그램 템플릿을 선택합니다. 이름 상자에 선택한 이름을 입력합니다.

  4. 확인을 클릭합니다. 새 Windows Phone 응용프로그램 창이 표시됩니다.

  5. 대상 Windows Phone 버전 메뉴에서 Windows Phone 7.1 이 선택되었는지 확인합니다.

  6. 확인을 클릭합니다. 새 프로젝트가 생성되고 MainPage.xaml이 Visual Studio 디자이너 창에서 열립니다.

  7. MainPage.xaml에서 LayoutRoot라는 표를 다음 코드로 바꿉니다.

        <!--LayoutRoot is the root grid where all page content is placed-->
        <Grid x:Name="LayoutRoot" Background="Transparent">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
    
            <!--TitlePanel contains the name of the application and page title-->
            <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
                <TextBlock 
                    x:Name="ApplicationTitle" 
                    Text="APP INSTANT ANSWER EXAMPLE" 
                    Style="{StaticResource PhoneTextNormalStyle}"/>
                <TextBlock 
                    x:Name="PageTitle" 
                    Text="URI details" 
                    Margin="9,-7,0,0" 
                    Style="{StaticResource PhoneTextTitle1Style}"/>
    
                <!-- Made visible when app is launched by App Instant Answer, otherwise collapsed. -->
                <TextBlock
                    x:Name="txtUriParameterName"
                    Text="bing_query" 
                    TextWrapping="Wrap" 
                    Style="{StaticResource PhoneTextExtraLargeStyle}"
                    Visibility="Collapsed"/>
                <TextBlock
                    x:Name="txtUriParameterValue"
                    Text="URI parameter value here" 
                    TextWrapping="Wrap" 
                    Style="{StaticResource PhoneTextAccentStyle}"
                    Visibility="Collapsed"/>
    
                <!-- Made visible when app is not launched by App Instant Answer, otherwise collapsed. -->
                <TextBlock
                    x:Name="txtNoLaunch"
                    Text="This application was not launched by an App Instant Answer." 
                    TextWrapping="Wrap" 
                    Style="{StaticResource PhoneTextSubtleStyle}"
                    Visibility="Collapsed"/>
                
            </StackPanel>
        </Grid>
    
    

    txtUriParameterNametxtUriParameterValue라는 TextBlock 컨트롤은 각각 App Instant Answer URI 매개 변수의 이름과 값을 표시합니다. 값은 응용프로그램 실행을 유발한 검색어에 해당합니다. txtNoLaunch라는 TextBlock은 App Instant Answer가 응용프로그램을 실행하지 않았다는 메시지를 표시합니다.

  8. 기본 페이지 MainPage.xaml.cs에 대한 코드 숨김 파일에서 MainPage 생성자에 다음 코드를 추가합니다.

                // Configure event handler for page Loaded event.
                this.Loaded += new RoutedEventHandler(MainPage_Loaded);
    
    

    페이지가 로드되면 다음 단계에서 만들어지는 메서드인 MainPage_Loaded 이벤트를 호출합니다.

이 섹션에서는 실행 URI에 bing_query URI 매개 변수가 존재하는지를 확인하는 코드를 추가합니다. bing_query가 있으면 응용프로그램이 App Instant Answer에서 실행된 것이고, 그렇지 않으면 표준 응용프로그램 실행입니다.

App Instant Answer 실행을 확인하려면

  • MainPage.xaml.cs에서 다음 코드를 MainPage 클래스에 추가합니다.

            void MainPage_Loaded(object sender, RoutedEventArgs e)
            {
                try
                {
                    // Try to obtain App Instant Answer URI parameter & value.
                    string tempSearchTerms = NavigationContext.QueryString["bing_query"];
    
                    // Show App Instant Answer URI parameter and value.
                    ShowUriParameter(tempSearchTerms);            
                }
                catch
                {
                    // Hide App Instant Answer URI parameter and value.
                    HideUriParameter();
                }
            }
    
    

    실행 URI에 bing_query 매개 변수가 있으면 NavigationContext QueryString은 실행을 유발한 검색어를 표시합니다. ShowUriParameterHideUriParameter는 다음 단계에서 만들어지는 도우미 메서드입니다.

이 섹션에서는 UI 요소를 축소하거나 표시하는 도우미 메서드를 만듭니다. 이러한 메서드는 응용프로그램이 실행된 방식에 따라 호출됩니다.

응용프로그램을 완성하려면

  • MainPage.xaml.cs에서 다음 코드를 MainPage 클래스에 추가합니다.

            void ShowUriParameter(string searchTerms)
            {
                // Hide message that app was not launched by App Instant Answer.
                txtNoLaunch.Visibility = Visibility.Collapsed;
    
                // Show URI parameter and value.
                txtUriParameterName.Visibility = Visibility.Visible;
                txtUriParameterValue.Visibility = Visibility.Visible;
                txtUriParameterValue.Text = searchTerms;
            }
    
            void HideUriParameter()
            {
                // Show message that app was not launched by App Instant Answer.
                txtNoLaunch.Visibility = Visibility.Visible;
    
                // Hide URI parameter and value.
                txtUriParameterName.Visibility = Visibility.Collapsed;
                txtUriParameterValue.Visibility = Visibility.Collapsed;
            }
    
    

이 섹션에서는 응용프로그램 매니페스트 파일을 수정하여 App Instant Answer에서의 응용프로그램 실행을 시뮬레이션합니다. App Instant Answer에 Windows Phone 응용프로그램과 검색 결과가 표시될 때를 제어할 수 없으므로 App Instant Answer 실행 시뮬레이션이 필요합니다.

참고참고:

App Instant Answer가 응용프로그램과 검색 결과를 포함하게 하려면 응용프로그램을 마켓플레이스에 전송해야 합니다.

App Instant Answer 실행을 시뮬레이션하려면

  1. 응용프로그램 매니페스트 파일 WMAppManifest.xml에서 DefaultTask 요소를 주석으로 처리합니다. 이 요소는 표준 응용프로그램 실행을 지정합니다.

  2. WMAppManifest.xml에서 다음 코드를 Tasks 요소에 추가합니다.

          <!-- To simulate App Instant Answer launch from search terms "Xbox 360 4 GB Console with Kinect" -->
          <DefaultTask  Name ="_default" NavigationPage="MainPage.xaml?bing_query=Xbox 360 4 GB Console with Kinect"/>
    
    

    DefaultTask 요소는 "Xbox360 4GB 콘솔(Kinect 포함)"에 대한 Bing 검색에서 App Instant Answer 실행을 시뮬레이션합니다.

    주의주의:

    디버깅을 끝내고 응용프로그램이 표준 실행을 수행할 수 있을 때 원래 DefaultTask 요소의 주석 처리를 제거합니다. 이 요소를 주석 처리하면 실제 App Instant Answer 실행이 제대로 작동하지 못하게 됩니다. 한 DefaultTask 요소만 한 번에 나타낼 수 있습니다.

  3. F5 키를 눌러 응용프로그램을 디버깅하고 에뮬레이터나 단말기로 배포합니다.

  4. 응용프로그램이 기본 페이지에서 실행되고 DefaultTask 요소에 지정된 검색어 및 bing_query 매개 변수를 표시하는지 관찰합니다.

  5. WMAppManifest.xml에서 임시 DefaultTask 요소를 주석 처리하고 원래 요소의 주석 처리를 제거합니다. 완료되면 Tasks 요소는 다음 코드와 같이 표시됩니다.

        <Tasks>
          <DefaultTask  Name ="_default" NavigationPage="MainPage.xaml"/>
          
          <!-- To simulate App Instant Answer launch from search terms "Xbox 360 4 GB Console with Kinect" -->
          <!--<DefaultTask  Name ="_default" NavigationPage="MainPage.xaml?bing_query=simulated search terms"/>-->
        </Tasks>
    
    
  6. F5 키를 눌러 응용프로그램을 디버깅하고 에뮬레이터나 단말기로 배포합니다.

  7. 응용프로그램이 기본 페이지에서 실행되고 표준 실행에 대한 메시지가 표시되는지 관찰합니다.

표시:
© 2014 Microsoft