URI に応じた既定のアプリの起動

重要な API

URI (Uniform Resource Identifier) に応じて既定のアプリを起動する方法について説明します。 URI を使うと、別のアプリを起動して特定の作業を実行できます。 また、Windows に組み込まれている多くの URI スキームの概要についても説明します。 カスタム URI を起動することもできます。 カスタム URI スキームの登録と URI アクティブ化処理の詳細情報については、「URI アクティブ化の処理」を参照してください。

URI スキームを使用すると、ハイパーリンクをクリックしてアプリを開けるようになります。 mailto: を使用して新しい Email を開始できるのと同様に、http: を使用して既定の Web ブラウザーを開くことができます。

このトピックでは、Windows に組み込まれている次の URI スキームについて説明します。

URI スキーム 発射
bingmaps:, ms-drive-to:, and ms-walk-to: マップ アプリ
http: 既定の Web ブラウザー
mailto: 既定の Email アプリ
ms-call: 通話アプリ
ms-chat: メッセージング アプリ
ms-people: People アプリ
ms-photos: フォト アプリ
ms-settings: 設定アプリ
ms-store: Store アプリ
ms-tonepicker: トーン ピッカー
ms-yellowpage: 近隣番号アプリ
msnweather: 天気アプリ
microsoft-edge: Microsoft Edge ブラウザー

たとえば、次の URI は既定のブラウザーを開き、Bing Web サイトを表示します。

https://bing.com

また、カスタム URI スキームを起動することもできます。 その URI を処理するアプリがインストールされていないユーザーに対しては、アプリのインストールを推奨できます。 詳細情報については、「アプリで URI を処理できない場合に別のアプリを推奨する」を参照してください。

一般に、アプリは起動済みのアプリを選択できません。 どのアプリを起動するかは、ユーザーが決定します。 同じ URI スキームでの処理に、複数のアプリを登録できます。 この例外は、予約済み URI スキームです。 予約済み URI スキームの登録は無視されます。 予約済み URI スキームの完全な一覧については、「URI アクティブ化の処理」を参照してください。 複数のアプリが同じ URI スキームを登録しているような場合、アプリは特定のアプリの起動を推奨できます。 詳細情報については、「アプリで URI を処理できない場合に別のアプリを推奨する」を参照してください。

LaunchUriAsync を呼び出して URI を起動する

LaunchUriAsync メソッドを使用して URI を起動します。 このメソッドを呼び出す際は、アプリが最前面に置かれている状態にある、つまりユーザーに表示されている必要があります。 この要件により、ユーザーは制御権限を維持できます。 この要件を満たすためには、すべての 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 と共にその推奨事項を渡すことができます。

推奨事項は、1 つの 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 は、URI の起動後にソース アプリを画面上に維持する必要がなく、ターゲット アプリに完全に置き換えられることを示すために使用できます。 このプロパティでは、呼び出し元アプリのウィンドウ サイズ設定のみを指定します。 これが、同時に画面に表示される可能性がある他のアプリの動作を指定することはありません。

ソース アプリの最終的なウィンドウ サイズは、複数の異なる要素が考慮されて決定されます。たとえば、ソース アプリの設定、画面上のアプリの数、画面の向きなどです。 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 [アプリ設定] ページを呼び出します。

Email URI スキーム

既定のメール アプリを起動するには、mailto: URI スキームを使用します。

URI スキーム 結果
mailto: 既定の Email アプリを起動します。
mailto:[email address] Email アプリを起動し、[宛先] 行に指定したメール アドレスで新しいメッセージを作成します。 ユーザーが [送信] をタップするまで、Email は送信されないことに注意してください。

HTTP URI スキーム

既定の Web ブラウザーを起動するためには、http: URI スキームを使用します。

URI スキーム 結果
http: 既定の Web ブラウザーを起動します。

マップ アプリ 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、Streetside ビューでマップを表示する」を参照してください。

メッセージング アプリ URI スキーム

Windows メッセージング アプリを起動するには、ms-chat: URI スキームを使用します。

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 検索) を指定します。
methodT9 (キーボードの種類) の場合、 keyword は、検索する T9 キーボード文字にマップされる数値文字列である必要があります。
methodString の場合、keyword は検索するキーワードです。

People アプリ URI スキーム

People アプリを起動するには、ms-people: URI スキームを使用します。 詳細情報については、「People アプリの起動」をご参照ください。

フォト アプリ 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

Note

ビデオを編集したり、画像を表示したりするための 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} Photos アプリを開くビデオ編集モードを示すパラメーター。{action} は、SlowMotionFrameExtractionTrimViewInk のいずれかです。 Action は必須です。
ms-photos:videoedit?StartTime={timespan} ビデオの再生を開始する場所を指定するオプション パラメーター。 {timespan}"hh:mm:ss.ffff" の形式にする必要があります。 指定しない場合、既定で 00:00:00.0000 のようになります。

設定アプリ URI スキーム

Windows 設定アプリを起動するには、ms-settings: URI スキームを使用します。 設定アプリの起動は、個人データにアクセスするアプリの開発の重要な部分です。 アプリが機密性の高いリソースにアクセスできない場合、そのリソースのプライバシー設定への便利なリンクをユーザーに提供することをお勧めします。 たとえば、次の URI では、設定アプリを開きカメラのプライバシーの設定を表示します。

ms-settings:privacy-webcam

camera privacy settings.

詳細情報については、「Windows 設定アプリの起動」および「プライバシー対応アプリのガイドライン」を参照してください。

Store アプリ URI スキーム

UWP アプリを起動するには、ms-windows-store: URI スキームを使用します。 製品詳細ページ、製品レビュー ページ、検索ページなどを開きます。たとえば、次の URI は UWP アプリを開き、ストアのホーム ページを起動します。

ms-windows-store://home/

詳細情報については、「UWP アプリの起動」を参照してください。

天気アプリの URI スキーム

msnweather: URI スキームを使って天気アプリを起動します。

URI スキーム 結果
msnweather://forecast?la=[latitude]&lo=[longitude] 場所の地理的座標に基づいて、[Forecast]\(天気予報\) ページで天気アプリを起動します。
latitude はその場所の緯度を指します。
longitude はその場所の経度を指します。

Microsoft Edge URI スキーム

microsoft-edge: URI スキームを使って、指定した URL で Microsoft Edge ブラウザーを起動します。

URI スキーム 結果
microsoft-edge:https://example.com/] Microsoft Edge ブラウザーを開き、https://example.com/ に移動します