파일 활성화 처리

중요 API

앱을 특정 파일 형식의 기본 처리기로 등록할 수 있습니다. Windows 데스크톱 애플리케이션과 UWP(유니버설 Windows 플랫폼) 앱 모두 기본 파일 처리기로 등록할 수 있습니다. 사용자가 앱을 특정 파일 형식의 기본 처리기로 선택하면 해당 파일 형식을 열 때 앱이 활성화됩니다.

한 파일 형식에 해당하는 모든 파일의 시작을 처리해야 하는 경우에만 해당 파일 형식에 등록하는 것이 좋습니다. 앱이 내부적으로 이 파일 형식만 사용해야 하는 경우에는 기본 처리기로 등록할 필요가 없습니다. 파일 형식에 등록하기로 선택한 경우, 앱이 해당 파일 형식에 대해 활성화될 때 예상되는 기능을 최종 사용자에게 제공해야 합니다. 예를 들면 .jpg 파일이 표시되도록 그림 뷰어 앱을 등록할 수 있습니다. 파일 연결에 대한 자세한 내용은 파일 형식 및 URI 관련 지침을 참조하세요.

다음 단계에서는 사용자 지정 파일 형식인 .alsdk에 등록하는 방법, 그리고 사용자가 .alsdk 파일을 열 때 앱을 활성화하는 방법을 보여줍니다.

참고 UWP 앱에서는 특정 URI 및 파일 확장자가 기본 제공 앱 및 운영 체제에서 사용할 수 있도록 예약되어 있습니다. 예약된 URI 또는 파일 확장자로 앱을 등록하려는 시도는 무시됩니다. 자세한 내용은 예약된 파일 및 URI 체계 이름을 참조하세요.

1단계: 패키지 매니페스트에서 확장 지점 지정하기

이 앱은 패키지 매니페스트에 나열된 파일 확장자에 대해서만 활성화 이벤트를 수신합니다. 앱이 .alsdk 확장자로 파일을 처리한다는 것을 나타내는 방법은 다음과 같습니다.

  1. 솔루션 탐색기에서 package.appxmanifest를 두 번 클릭하여 매니페스트 디자이너를 여세요. 선언 탭을 선택하고 사용 가능한 선언 드롭다운에서 파일 형식 연결을 선택한 다음 추가를 클릭하세요. 파일 연결 시 사용하는 ID에 대한 자세한 내용은 프로그래밍 ID를 참조하세요.

    다음 내용은 매니페스트 디자이너에서 입력할 수 있는 필드의 각각에 대한 간략한 설명입니다.

필드 Description
표시 이름 파일 형식 그룹의 표시 이름을 지정하세요. 표시 이름은 제어판기본 프로그램 설정에서 파일 형식을 식별하는 데 사용됩니다.
로고 바탕 화면 및 제어판기본 프로그램 설정에서 파일 형식을 식별하는 데 사용될 로고를 지정하세요. 로고를 지정하지 않으면 애플리케이션의 작은 로고가 사용됩니다.
정보 팁 파일 형식 그룹에 대한 정보 팁을 지정하세요. 이 도구 설명 텍스트는 사용자가 이 형식의 파일에 해당하는 아이콘에 마우스 커서를 올리면 나타납니다.
이름 동일한 표시 이름, 로고, 정보 팁 및 편집 플래그를 공유하는 파일 형식 그룹의 이름을 선택하세요. 모든 앱 업데이트에서 동일하게 유지될 수 있는 그룹 이름을 선택하세요. 참고 이름의 모든 문자는 소문자여야 합니다.
콘텐츠 유형 특정 파일 형식에 대해 MIME 콘텐츠 형식(예: image/jpeg)을 지정하세요. 허용된 콘텐츠 형식에 대한 중요 참고 사항: 예약되어 있거나 금지되어 있어 패키지 매니페스트에 입력할 수 없는 MIME 콘텐츠 형식의 알파벳순 목록에는 application/force-download, application/octet-stream, application/unknown, application/x-msdownload이 있습니다.
파일 형식 마침표 뒤에 붙여 등록할 파일 형식(예: “.jpeg”)을 지정하세요. 예약된/금지된 파일 형식: 예약되어 있거나 금지되어 있어 UWP 앱에 등록할 수 없는 기본 제공 앱용 파일 형식의 알파벳순 목록은 예약된 URI 체계 이름 및 파일 형식을 참조하세요.
  1. alsdk을(를) 이름으로 입력하세요.
  2. .alsdk을(를) 파일 형식으로 입력하세요.
  3. “images\Icon.png”를 로고로 입력합니다.
  4. package.appxmanifest의 변경 사항을 저장하려면 Ctrl+S를 누르세요.

위 단계에서는 이와 같은 Extension(확장자) 요소를 패키지 매니페스트에 추가합니다. windows.fileTypeAssociation 범주는 앱이 확장자가 .alsdk인 파일을 처리한다는 것을 나타냅니다.

      <Extensions>
        <uap:Extension Category="windows.fileTypeAssociation">
          <uap:FileTypeAssociation Name="alsdk">
            <uap:Logo>images\icon.png</uap:Logo>
            <uap:SupportedFileTypes>
              <uap:FileType>.alsdk</uap:FileType>
            </uap:SupportedFileTypes>
          </uap:FileTypeAssociation>
        </uap:Extension>
      </Extensions>

2단계: 적절한 아이콘 추가하기

파일 형식의 기본값이 된 앱의 아이콘이 시스템 전체의 다양한 위치에 표시됩니다. 예를 들어 다음과 같은 아이콘이 표시됩니다.

  • Windows 탐색기 항목 보기, 상황에 맞는 메뉴 및 리본
  • 기본 프로그램 제어판
  • 파일 선택기
  • 시작 화면의 검색 결과

이러한 위치에 로고가 표시될 수 있도록 프로젝트에 44x44 아이콘을 포함합니다. 앱 타일 로고의 모양을 일치시키고, 아이콘을 투명하게 설정하는 대신 앱의 배경색을 사용하세요. 로고의 여백을 설정하지 말고 로고를 가장자리까지 확장하세요. 흰색 배경에서 아이콘을 테스트하세요. 아이콘에 대한 자세한 내용은 타일 및 아이콘 자산에 대한 지침을 참조하세요.

3단계: 활성화된 이벤트 처리하기

OnFileActivated 이벤트 처리기는 모든 파일 활성화 이벤트를 수신합니다.

protected override void OnFileActivated(FileActivatedEventArgs args)
{
       // TODO: Handle file activation
       // The number of files received is args.Files.Count
       // The name of the first file is args.Files[0].Name
}
Protected Overrides Sub OnFileActivated(ByVal args As Windows.ApplicationModel.Activation.FileActivatedEventArgs)
      ' TODO: Handle file activation
      ' The number of files received is args.Files.Size
      ' The name of the first file is args.Files(0).Name
End Sub
void App::OnFileActivated(Windows::ApplicationModel::Activation::FileActivatedEventArgs const& args)
{
    // TODO: Handle file activation.
    auto numberOfFilesReceived{ args.Files().Size() };
    auto nameOfTheFirstFile{ args.Files().GetAt(0).Name() };
}
void App::OnFileActivated(Windows::ApplicationModel::Activation::FileActivatedEventArgs^ args)
{
    // TODO: Handle file activation
    // The number of files received is args->Files->Size
    // The name of the first file is args->Files->GetAt(0)->Name
}

참고 항목

파일 계약을 통해 시작될 때 뒤로 단추는 사용자가 앱의 이전 콘텐츠가 아닌 앱이 시작된 화면으로 다시 돌아가도록 해야 합니다.

새 페이지를 여는 각 활성화 이벤트에 대해 새 XAML Frame을 만들도록 하는 것이 좋습니다. 이런 식으로 새 XAML 프레임에 대한 탐색 백 스택에는 앱이 일시 중단될 때 현재 창에 포함될 수 있는 이전 콘텐츠가 포함되지 않습니다. 시작 및 파일 계약에 단일 XAML Frame을 사용하도록 결정한 경우 새 페이지를 탐색하기 전에 Frame의 탐색 저널에서 페이지를 지워야 합니다.

앱이 파일 활성화를 통해 시작된 경우 사용자가 앱의 최상위 페이지로 다시 이동할 수 있도록 하는 UI를 포함해야 합니다.

설명

수신한 파일의 출처는 신뢰할 수 없는 원본일 수 있습니다. 이러한 파일에 대해 조치를 취하기 전에 파일 콘텐츠의 유효성을 검사하는 것이 좋습니다.

전체 예제

개념

작업

지침

참조