URI 활성화 처리 방법
콘텐츠의 테이블 축소
콘텐츠의 테이블 확장
언어: HTML | XAML

URI 활성화 처리 방법(XAML)

[ 이 문서는 Windows 런타임 앱을 작성하는 Windows에서 8.x 및 Windows Phone 8.x 개발자를 대상으로 합니다. Windows 10용으로 개발하는 경우에는 최신 설명서를 참조하세요.]

앱을 특정 URI(Uniform Resource Identifier) 스키마 이름의 기본 처리기로 등록할 수 있습니다. 데스크톱 앱과 Windows 런타임 앱을 모두 URI 스키마 이름의 기본 처리기로 등록할 수 있습니다. 사용자가 앱을 URI 스키마 이름의 기본 처리기로 선택하면 해당 형식의 URI를 시작할 때마다 앱이 활성화됩니다.

해당 형식의 URI 스키마에 대해 모든 URI 시작을 처리하려는 경우에만 URI 스키마 이름을 등록하는 것이 좋습니다. URI 스키마 이름을 등록할 경우에는 앱이 해당 URI 스키마에 대해 활성화될 때 기대되는 기능을 최종 사용자에게 제공해야 합니다. 예를 들어 mailto: URI 스키마 이름에 대해 등록된 앱은 사용자가 새 메일을 작성할 수 있도록 새 메일 메시지로 열려야 합니다. URI 연결에 대한 자세한 내용은 파일 형식 및 URI에 대한 지침 및 검사 목록을 참조하세요.

다음 단계에서는 사용자 지정 URI 스키마 이름인 .alsdk://를 등록하는 방법 및 사용자가 alsdk:// URI를 시작할 때 앱을 활성화하는 방법을 보여 줍니다.

참고  

Windows Phone 스토어 앱에서 특정 URI 및 파일 확장명은 기본 제공 앱과 운영 체제에서 사용하기 위해 예약되어 있습니다. 예약된 URI 또는 파일 확장명에 앱을 등록하려고 하면 무시됩니다. 자세한 내용은 이 페이지의 목록을 참조하세요.

지침

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

앱은 패키지 매니페스트에 나열된 URI 스키마 이름에 대해서만 활성화 이벤트를 받습니다. 다음은 앱이 alsdk URI 스키마 이름을 처리하도록 지정하는 방법입니다.

  1. 솔루션 탐색기에서 package.appxmanifest를 두 번 클릭하여 엽니다.

    다음은 패키지 매니페스트에서 입력할 수 있는 각 필드에 대한 간략한 설명입니다.

    필드설명

    로고

    제어판기본 프로그램 설정에서 URI 스키마 이름을 식별하는 데 사용되는 로고를 지정합니다. 로고를 지정하지 않으면 앱의 작은 로고가 사용됩니다.

    표시 이름

    제어판기본 프로그램 설정에서 URI 스키마 이름을 식별하는 표시 이름을 지정합니다.

    이름

    Uri 스키마 이름을 선택합니다.

    참고  이름은 모두 소문자여야 합니다.
     

    예약되거나 금지된 파일 형식

    예약되거나 금지되었기 때문에 앱을 등록할 수 없는 URI 스키마의 사전순 목록입니다.

    참고  

    Windows 스토어 앱

    application.manifest, application.reference, batfile, blob, cerfile, chm.file, cmdfile, comfile, cplfile, dllfile, drvfile, exefile, explorer.assocactionid.burnselection, explorer.assocactionid.closesession, explorer.assocactionid.erasedisc, explorer.assocactionid.zipselection, explorer.assocprotocol.search-ms, explorer.burnselection, explorer.closesession, explorer.erasedisc, explorer.zipselection, file, fonfile, hlpfile, htafile, inffile , insfile, internetshortcut, jsefile, lnkfile, microsoft.powershellscript.1, ms-accountpictureprovider, ms-appdata, ms-appx, ms-autoplay, msi.package, msi.patch, ms-windows-store, ocxfile, piffile, regfile, scrfile, scriptletfile, shbfile, shcmdfile, shsfile,smb, sysfile, ttffile,unknown, usertileprovider,vbefile,vbsfile, windows.gadget,wsffile, wsfile,wshfile

    참고  

    Windows Phone 스토어 앱

    Windows Phone은 기본 제공 앱에 대해 다음 URI 스키마를 예약합니다.

    bing, callto, dtmf, http, https, mailto, maps, ms-excel, ms-powerpoint, ms-settings-airplanemode, ms-settings-bluetooth, ms-settings-cellular, ms-settings-emailandaccounts, ms-settings-location, ms-settings-lock, ms-settings-wifi, ms-word, office, onenote, tel, wallet, xbls, zune

    Windows Phone은 운영 체제에 대해 다음 URI 스키마를 예약합니다.

    Explorer.AssocActionId.BurnSelection, Explorer.AssocActionId.CloseSession, Explorer.AssocActionId.EraseDisc, Explorer.AssocActionId.ZipSelection, Explorer.AssocProtocol.search-ms, Explorer.BurnSelection, Explorer.CloseSession, Explorer.EraseDisc, Explorer.ZipSelection, File, Iehistory, Ierss, Javascript, Jscript, LDAP, Res, rlogin, StickyNotes, telnet, tn3270, Vbscript, windowsmediacenterapp, windowsmediacenterssl, windowsmediacenterweb, WMP11.AssocProtocol.MMS

    원하는 보기(Windows만 해당)

    Desired View 필드를 지정하여 URI 스키마 이름에 대해 시작을 처리할 때 앱의 창에 필요한 공간을 나타냅니다. Desired View에 사용 가능한 값은 Default, UseLess, UseHalf, UseMore 또는 UseMinimum입니다.

    참고  Windows는 대상 앱의 최종 창 크기를 결정할 때 원본 앱의 기본 설정, 화면의 앱 수, 화면 방향 같은 여러 가지 요소를 고려합니다. 원하는 보기를 설정해도 대상 앱에 대한 특정 창 관리 동작이 보장되지 않습니다.
     

    Windows 8.1:  Desired View는 Windows 8.1 및 Windows Server 2012 R2 이전 버전에서 지원되지 않습니다.

    Windows Phone:  Desired View는 Windows Phone에서 지원되지 않습니다.

     

  2. 선언 탭을 선택합니다.
  3. 드롭다운 목록에서 프로토콜을 선택하고 추가를 클릭합니다.
  4. 이름으로 alsdk를 입력합니다.
  5. “images\Icon.png”를 로고로 입력합니다.
  6. Ctrl+S를 눌러 package.appxmanifest에 변경 사항을 저장합니다.

이렇게 하면 이와 같은 Extension 요소가 패키지 매니페스트에 추가됩니다. windows.protocol 범주는 앱이 alsdk URI 스키마 이름을 처리함을 나타냅니다.


<Package xmlns="http://schemas.microsoft.com/appx/2010/manifest" xmlns:m2="http://schemas.microsoft.com/appx/2013/manifest">
   <Applications>
      <Application Id="AutoLaunch.App">
         <Extensions>
            <Extension Category="windows.protocol">
               <Protocol Name="alsdk" m2:DesiredView="useLess"/>
               <Logo>images\logo.png</Logo>										
               <DisplayName>SDK Sample URI Scheme</DisplayName>
            </Extension>			            
         </Extensions>
      </Application>
   </Applications>
</Package>

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

URI 스키마 이름의 기본값이 되는 앱에는 시스템 전체의 다양한 위치(예제: 기본 프로그램 제어판)에 표시되는 아이콘이 있습니다.

로고가 이러한 모든 위치에서 제대로 표시되도록 프로젝트에 적절한 아이콘을 포함하는 것이 좋습니다. Windows 스토어 앱의 경우 작은 로고 및 아이콘 크기에 대해 16/32/48/256픽셀 버전을 이미지 폴더에 포함합니다. Windows Phone 스토어 앱의 경우 대신 63/129/336픽셀 버전을 포함합니다. 색판이 적용된 앱 타일 로고의 모양과 일치시키고, 로고를 안쪽 여백 없이 가장자리까지 확장합니다. 흰색 배경에서 아이콘을 테스트합니다. 예제 아이콘은 연결 시작 샘플를 참조하세요.

파일의 보기가 이미지 폴더인 솔루션 탐색기. 16, 32, 48 및 256픽셀 버전의 'Icon.targetsize'와 'smallTile-sdk'가 모두 있습니다.

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

OnActivated 이벤트 처리기는 모든 활성화 이벤트를 받습니다. Kind 속성은 활성화 이벤트의 형식을 나타냅니다. 이 예제는 Protocol 활성화 이벤트를 처리하도록 설정되었습니다.


public partial class App
{
   protected override void OnActivated(IActivatedEventArgs args)
   {
      if (args.Kind == ActivationKind.Protocol)
      {
         ProtocolActivatedEventArgs eventArgs = args as ProtocolActivatedEventArgs;

         // TODO: Handle URI activation
         // The received URI is eventArgs.Uri.AbsoluteUri
      }
   }
}

참고  

프로토콜 계약을 통해 시작된 Windows Phone 스토어 앱에서 뒤로 단추는 사용자가 앱의 이전 콘텐츠가 아닌 앱이 시작된 화면으로 다시 돌아가도록 해야 합니다.

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

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

설명

악의적인 경우를 비롯하여 어떤 앱이나 웹 사이트도 URI 스키마 이름을 사용할 수 있습니다. 따라서 URI를 통해 가져오는 데이터는 신뢰할 수 없는 원본에서 온 것일 수 있으므로 URI를 통해 받은 매개 변수를 기반으로 영구 작업을 수행하지 않는 것이 좋습니다. 예를 들어 사용자의 계정 페이지로 앱을 실행하는 데 URI 매개 변수를 사용할 수 있지만 사용자의 계정을 직접 수정하는 데는 사용하지 않는 것이 좋습니다.

참고  앱에 대해 새 URI 스키마 이름을 만들려는 경우 RFC 4395의 지침에 따라야 합니다. 그러면 이름이 URI 스키마에 대한 표준을 충족하게 됩니다.
 

참고  

프로토콜 계약을 통해 시작된 Windows Phone 스토어 앱에서 뒤로 단추는 사용자가 앱의 이전 콘텐츠가 아닌 앱이 시작된 화면으로 다시 돌아가도록 해야 합니다.

앱이 새 URI 대상을 여는 각 활성화 이벤트에 대해 새 XAML Frame을 만들도록 하는 것이 좋습니다. 이런 식으로 새 XAML Frame에 대한 탐색 백 스택에는 앱이 일시 중단될 때 현재 창에 포함될 수 있는 이전 콘텐츠가 포함되지 않습니다.

앱에서 시작 및 프로토콜 계약에 단일 XAML Frame을 사용하도록 결정하는 경우 새 페이지를 탐색하기 전에 Frame의 탐색 저널에서 페이지를 지워야 합니다. 프로토콜 계약을 통해 시작된 경우 사용자가 앱의 맨 위로 다시 이동할 수 있도록 하는 UI를 앱에 포함하는 것이 좋습니다.

전체 예제

연결 시작 샘플를 참조하세요.

관련 항목

개념
기본 프로그램
파일 형식 및 URI 연결 모델
Windows 및 Windows Server 호환성 도움말: Windows 8, Windows 8.1 및 Windows Server 2012(사용자 모델 정보)
작업
URI에 대한 기본 앱 시작 방법
파일 활성화 처리 방법
지침
파일 형식 및 URI에 대한 지침
참조
Windows.ApplicationModel.Activation.ProtocolActivatedEventArgs
Windows.UI.Xaml.Application.OnActivated

 

 

표시:
© 2016 Microsoft