다음을 통해 공유


URI에 대한 기본 앱 실행

중요 API

URI(Uniform Resource Identifier)에 대한 기본 앱 시작 방법을 알아봅니다. URI를 사용하면 다른 앱을 실행하여 특정 작업을 수행할 수 있습니다. 이 항목에서는 Windows에 기본 제공되는 다양한 URI 스키마에 대한 개요도 제공합니다. 사용자 지정 URI도 시작할 수 있습니다. 사용자 지정 URI 체계를 등록하고 URI 활성화를 처리하는 방법에 대한 자세한 내용은 URI 활성화 처리하기를 참조하세요.

URI 체계를 사용하면 하이퍼링크를 클릭해서 앱을 열 수 있습니다. mailto:를 사용해서 새 이메일을 시작할 수 있듯이, http:를 사용해서 기본 웹 브라우저를 열 수 있습니다.

이 토픽에서는 Windows에 기본 제공되는 다음 URI 체계를 설명합니다.

URI 체계 시작
bingmaps:, ms-drive-to:, ms-walk-to: 지도 앱
http: 기본 웹 브라우저
mailto: 기본 이메일 앱
ms-call: 통화 앱
ms-chat: 메시징 앱
ms-people: 사람 앱
ms-photos: 사진 앱
ms-settings: 설정 앱
ms-store: 스토어 앱
ms-tonepicker: 톤 선택기
ms-yellowpage: 주변 연락처 앱
msnweather: 날씨 앱
microsoft-edge: Microsoft Edge 브라우저

그 예로 다음 URI는 기본 브라우저를 열어 Bing 웹사이트를 보여줍니다.

https://bing.com

사용자 지정 URI 체계도 시작할 수 있습니다. 해당 URI를 처리하도록 설치된 앱이 없다면 사용자가 설치할 앱을 추천할 수 있습니다. 자세한 내용은 URI를 처리할 수 없는 경우 앱 권장을 참조하세요.

일반적으로 앱에서는 시작할 앱을 선택할 수 없습니다. 사용자가 어떤 앱을 시작할지 결정해야 합니다. 동일한 URI 체계를 처리하도록 두 개 이상의 앱을 등록할 수 있습니다. 이 경우의 예외는 예약된 URI 체계에 관한 것입니다. 예약된 URI 체계의 등록은 무시됩니다. 예약된 URI 체계의 전체 목록은 URI 활성화 처리하기를 참조하세요. 두 개 이상의 앱이 동일한 URI 체계를 등록했을 가능성이 있는 경우에는 앱에서 특정 앱을 시작하는 것이 좋습니다. 자세한 내용은 URI를 처리할 수 없는 경우 앱 권장을 참조하세요.

URI 시작을 위해 LaunchUriAsync 호출하기

URI를 시작하려면 LaunchUriAsync 메서드를 사용하세요. 이 메서드를 호출할 경우 앱은 포그라운드 앱이어야 합니다. 다시 말해서, 앱이 사용자의 눈에 보여야 합니다. 이 요건은 사용자가 제어 권한을 유지하는 데 도움이 됩니다. 이 요건을 충족하려면 모든 URI 시작을 앱의 UI에 직접 연결해야 합니다. 사용자는 URI 시작을 개시하기 위해 항상 몇 가지 조치를 취해야 합니다. URI를 시작하려 했는데 앱이 포그라운드에 없으면 시작이 실패하고 오류 콜백이 호출됩니다.

먼저 URI를 나타낼 System.Uri 개체를 생성한 다음, 해당 개체를 LaunchUriAsync 메서드에 전달하세요. 다음 예제에 나온 대로 반환 결과를 사용하여 호출의 성공 여부를 확인하세요.

private async void launchURI_Click(object sender, RoutedEventArgs e)
{
   // The URI to launch
   var uriBing = new Uri(@"http://www.bing.com");

   // Launch the URI
   var success = await Windows.System.Launcher.LaunchUriAsync(uriBing);

   if (success)
   {
      // URI launched
   }
   else
   {
      // URI launch failed
   }
}

경우에 따라 운영 체제에서 사용자에게 실제로 앱을 전환할 것인지 묻는 메시지를 표시합니다.

a warning dialog overlayed on a grayed out background of the app. the dialog asks the user if they want to switch apps and has ‘yes’ and ‘no’ buttons in the bottom right. the ‘no’ button is highlighted.

이 메시지가 항상 발생하도록 하려면 Windows.System.LauncherOptions.TreatAsUntrusted 속성을 사용하여 운영 체제에 경고를 표시하라고 지시합니다.

// The URI to launch
var uriBing = new Uri(@"http://www.bing.com");

// Set the option to show a warning
var promptOptions = new Windows.System.LauncherOptions();
promptOptions.TreatAsUntrusted = true;

// Launch the URI
var success = await Windows.System.Launcher.LaunchUriAsync(uriBing, promptOptions);

URI를 처리할 앱이 없는 경우 앱 추천하기

경우에 따라서는 사용자가 시작하려는 URI를 처리할 수 있는 앱이 설치되어 있지 않을 수도 있습니다. 운영 체제는 기본적으로 스토어에서 적절한 앱을 검색할 수 있는 링크를 사용자에게 제공해서 이러한 사례를 처리합니다. 이 시나리오에서 가져올 앱에 대한 특정 권장 사항을 사용자에게 제공하려는 경우, 시작하려는 URI와 함께 해당 권장 사항을 전달하면 이를 해낼 수 있습니다.

권장 사항은 URI 체계를 처리하기 위해 두 개 이상의 앱이 등록된 경우에도 유용합니다. 특정 앱을 추천하여 이미 설치된 경우에는 Windows가 해당 앱을 엽니다.

추천을 하려면 추천하려는 스토어에서 앱의 패키지 제품군 이름으로 설정된 LauncherOptions.preferredApplicationPackageFamilyName으로 Windows.System.Launcher.LaunchUriAsync(Uri, LauncherOptions) 메서드를 호출하세요. 운영 체제는 이 정보를 이용하여 스토어에서 앱을 검색하는 일반 옵션을 스토어에서 추천 앱을 획득하는 특정 옵션으로 바꿉니다.

// Set the recommended app
var options = new Windows.System.LauncherOptions();
options.PreferredApplicationPackageFamilyName = "Contoso.URIApp_8wknc82po1e";
options.PreferredApplicationDisplayName = "Contoso URI Ap";

// Launch the URI and pass in the recommended app
// in case the user has no apps installed to handle the URI
var success = await Windows.System.Launcher.LaunchUriAsync(uriContoso, options);

나머지 뷰 기본 설정 설정하기

LaunchUriAsync를 호출하는 원본 앱은 URI 시작 이후 화면에 계속 표시되도록 요청할 수 있습니다. Windows는 기본적으로 원본 앱과 URI를 처리하는 대상 앱 간에 사용 가능한 모든 공간을 동일하게 공유하려고 합니다. 원본 앱은 DesiredRemainingView 속성을 사용하여 사용 가능한 공간을 더 많이, 혹은 더 적게 차지하도록 앱 창을 기본 설정한다는 것을 운영 체제에 표시할 수 있습니다. DesiredRemainingView를 사용하면 파일 시작 이후에도 원본 앱이 화면에 남아 있을 필요가 없으며, 원본 앱을 대상 앱으로 완전히 바꿀 수 있다는 것을 나타낼 수도 있습니다. 이 속성은 호출할 앱의 기본 설정 창 크기만 지정합니다. 동시에 화면에 같이 표시될 수 있는 다른 앱의 동작은 지정하지 않습니다.

참고 Windows는 원본 앱의 최종 창 크기를 결정할 때 여러 가지 다양한 요소(예: 원본 앱의 기본 설정, 화면에 나타나는 앱의 수, 화면 방향 등)를 고려합니다. DesiredRemainingView를 설정하면 원본 앱의 특정 창 사용 동작이 보장되지 않습니다.

// Set the desired remaining view.
var options = new Windows.System.LauncherOptions();
options.DesiredRemainingView = Windows.UI.ViewManagement.ViewSizePreference.UseLess;

// Launch the URI
var success = await Windows.System.Launcher.LaunchUriAsync(uriContoso, options);

URI 체계

다양한 URI 체계는 아래에 설명되어 있습니다.

통화 앱 URI 체계

ms-call: URI 스키마를 사용하여 통화 앱을 실행합니다.

URI 체계 결과
ms-call:settings 앱 설정 페이지를 호출합니다.

이메일 URI 체계

mailto: URI 스키마를 사용하여 기본 메일 앱을 실행합니다.

URI 체계 결과
mailto: 기본 이메일 앱을 시작합니다.
mailto:[email address] 이메일 앱을 시작하고 To(수신자) 행에 입력된 이메일 주소로 새 메시지를 작성합니다. 사용자가 "발송"을 탭할 때까지는 이메일이 발송되지 않습니다.

HTTP URI 체계

http: URI 스키마를 사용하여 기본 웹 브라우저를 실행합니다.

URI 체계 결과
http: 기본 웹 브라우저를 시작합니다.

지도 앱 URI 체계

bingmaps:, ms-drive-to:, ms-walk-to: URI 스키마로 Windows 지도 앱을 실행하여 특정 지도, 길 찾기, 검색 결과를 표시합니다. 그 예로 다음 URI는 Windows 지도 앱을 열고 뉴욕시를 중심으로 지도를 표시합니다.

bingmaps:?cp=40.726966~-74.006076

an example of the windows maps app.

자세한 내용은 Windows 지도 앱 실행을 참조하세요. 사용자 고유의 앱에서 지도 컨트롤을 사용하려면 2D 뷰, 3D 뷰 및 거리 뷰로 지도 표시하기를 참조하세요.

메시징 앱 URI 체계

ms-chat: URI 스키마를 사용하여 Windows 메시지 앱을 실행합니다.

URI 구성표 결과
ms-chat: 메시지 앱을 실행합니다.
ms-chat:?ContactID={contacted} 메시지 애플리케이션이 특정 연락처의 정보를 사용하여 실행되도록 허용합니다.
ms-chat:?Body={body} 메시지 애플리케이션이 메시지 내용으로 사용할 문자열을 사용하여 실행되도록 허용합니다.
ms-chat:?Addresses={address}&Body={body} 메시지 애플리케이션이 특정 주소 정보 및 메시지 내용으로 사용할 문자열을 사용하여 실행되도록 허용합니다. 참고: 주소를 연결할 수 있습니다.
ms-chat:?TransportId={transportId} 메시지 애플리케이션이 특정 전송 ID를 사용하여 실행되도록 허용합니다.

톤 선택기 URI 체계

ms-tonepicker: URI 스키마를 사용하여 벨소리, 알람, 시스템 톤을 선택합니다. 새 벨소리를 저장하고 톤의 표시 이름을 가져올 수도 있습니다.

URI 체계 결과
ms-tonepicker: 벨소리, 알람 및 시스템 톤을 선택하세요.

매개변수는 ValueSet를 통해 LaunchURI API에 전달됩니다. 자세한 내용은 ms-tonepicker URI 체계를 이용해서 톤 선택/저장하기를 참조하세요.

주변 연락처 앱 URI 체계

ms-yellowpage: URI 스키마를 사용하여 근처 전화 번호 앱을 실행합니다.

URI 체계 결과
ms-yellowpage:?input=[keyword]&method=[String or T9] 주변 연락처 앱을 시작합니다.
input은 검색하려는 키워드를 나타냅니다.
method는 검색의 유형(문자열 또는 T9 검색)을 나타냅니다.
method이(가) T9(키보드의 유형)인 경우에는 keyword이(가) 검색할 T9 키보드 문자에 매핑되는 숫자 문자열이어야 합니다.
method이(가) String인 경우에는 keyword이(가) 검색할 키워드입니다.

사람 앱 URI 체계

ms-people: URI 스키마를 사용하여 피플 앱을 실행합니다. 자세한 내용은 사람 앱 시작하기를 참조하세요.

사진 앱 URI 스키마

ms-photos: URI 스키마로 사진 앱을 실행하여 이미지를 보거나 비디오를 편집합니다. 예시:
이미지를 보려면 ms-photos:viewer?fileName=c:\users\userName\Pictures\image.jpg를 수행합니다.
또는 비디오를 편집하려면 ms-photos:videoedit?InputToken=123abc&Action=Trim&StartTime=01:02:03를 수행합니다.

참고 항목

비디오를 편집하거나 이미지를 표시하는 URI는 데스크톱에서만 사용할 수 있습니다.

URI 구성표 결과
ms-photos:viewer?fileName={filename} 사진 앱을 실행하여 지정된 이미지를 봅니다. 여기서, {filename}은 정규화된 경로 이름입니다. 예: c:\users\userName\Pictures\ImageToView.jpg
ms-photos:videoedit?InputToken={input token} 파일 토큰에 의해 표시되는 파일을 위해 사진 앱을 비디오 편집 모드로 실행합니다. InputToken은 필수입니다. SharedStorageAccessManager를 사용하여 파일의 토큰을 가져옵니다.
ms-photos:videoedit?Action={action} 비디오 편집 모드에서 사진 앱을 여는 매개 변수입니다. 여기서, {action}은 SlowMotion, FrameExtraction, Trim, View, Ink 중 하나입니다. Action은 필수입니다.
ms-photos:videoedit?StartTime={timespan} 비디오 재생을 시작할 위치를 지정하는 선택적 매개 변수입니다. {timespan}"hh:mm:ss.ffff" 형식이어야 합니다. 이를 지정하지 않는 경우 기본값은 00:00:00.0000입니다.

설정 앱 URI 체계

ms-settings: URI 스키마를 사용하여 Windows 설정 앱을 실행합니다. 설정 앱을 시작하는 것은 개인 정보 보호 인식 앱을 작성하는 데 중요한 부분입니다. 앱으로 민감한 리소스에 액세스할 수 없다면 해당 리소스의 개인 정보 보호 설정으로 연결되는 간편 링크를 사용자에게 제공하는 것이 좋습니다. 그 예로 다음 URI는 설정 앱을 열고 카메라 개인 정보 보호 설정을 표시합니다.

ms-settings:privacy-webcam

camera privacy settings.

자세한 내용은 Windows 설정 앱 시작하기개인 정보 보호 인식 앱 관련 지침을 참조하세요.

스토어 앱 URI 체계

ms-windows-store: URI 스키마를 사용하여 UWP 앱을 실행합니다. 제품 세부 정보 페이지, 제품 리뷰 페이지, 검색 페이지 등을 엽니다. 예를 들어 다음 URI는 UWP 앱을 열고 Microsoft Store의 홈페이지를 시작합니다.

ms-windows-store://home/

자세한 내용은 UWP 앱 실행을 참조하세요.

날씨 앱 URI 체계

msnweather: URI 체계를 사용하여 날씨 앱을 시작합니다.

URI 체계 결과
msnweather://forecast?la=[latitude]&lo=[longitude] 위치 지리 좌표를 기준으로 예측 페이지에서 날씨 앱을 시작합니다.
latitude는 위치의 위도를 나타냅니다.
longitude는 위치의 경도를 나타냅니다.

Microsoft Edge URI 체계

microsoft edge: URI 체계를 사용하여 지정된 URL에 대한 Microsoft Edge 브라우저를 시작합니다.

URI 체계 결과
microsoft-edge:https://example.com/] Microsoft Edge 브라우저를 열고 https://example.com/을 탐색합니다.