URI に応じた既定のアプリの起動
重要な API
URI (Uniform Resource Identifier) に応じて既定のアプリを起動する方法について説明します。 URI を使うと、別のアプリを起動して特定の作業を実行できます。 また、Windows に組み込まれている多くの URI スキームの概要についても説明します。 カスタム URI も起動することができます。 カスタム URI スキームを登録する方法と URI のアクティブ化を処理する方法について詳しくは、「URI のアクティブ化の処理」をご覧ください。
URI スキームでは、ハイパーリンクをクリックしてアプリを開くことができます。 mailto: を使って新しいメールの作成を開始できるのと同様に、http: を使って既定の Web ブラウザーを開くことができます。
このトピックでは、Windows に組み込まれている以下の URI スキームについて説明します。
URI スキーム | 起動対象 |
---|---|
bingmaps:, ms-drive-to:, and ms-walk-to: | マップ アプリ |
http: | 既定の Web ブラウザー |
mailto: | 既定のメール アプリ |
ms-call: | 通話アプリ |
ms-chat: | メッセージング アプリ |
ms-people: | People アプリ |
ms-photos: | フォト アプリ |
ms-settings: | 設定アプリ |
ms-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 を起動
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
}
}
場合によって、ユーザーが実際にアプリを切り替えようとしているかどうかを確認するダイアログがオペレーティング システムにより表示されます。
この確認ダイアログを常に表示する場合は、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 の起動後も画面上に留まることを要求できます。 既定では、利用可能なスペース全体がソース アプリと 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 | アプリ設定のページを呼び出します。 |
メールの URI スキーム
mailto: URI スキームを使って、既定のメール アプリを起動します。
URI スキーム | 結果 |
---|---|
mailto: | 既定のメール アプリを起動します。 |
mailto:[email address] | メール アプリを起動し、宛先行で指定されているメール アドレスを使用して新しいメッセージを作成します。 メールは、ユーザーが [送信] をタップするまで送信されません。 |
HTTP の URI スキーム
http: URI スキームを使って、既定の Web ブラウザーを起動します。
URI スキーム | 結果 |
---|---|
http: | 既定の Web ブラウザーを起動します。 |
マップ アプリの URI スキーム
bingmaps:、ms-drive-to:、ms-walk-to: の各 URI スキームを使って、Windows マップ アプリを起動し、特定の地図、ルート案内、検索結果を表示します。 たとえば、次の URI は、Windows マップ アプリを開き、ニューヨークを中心とした地図を表示します。
bingmaps:?cp=40.726966~-74.006076
詳しくは、「Windows マップ アプリの起動」をご覧ください。 独自のアプリでマップ コントロールを使うには、「2D、3D、Streetside ビューでの地図の表示」をご覧ください。
メッセージング アプリの 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 は検索するキーワードになります。 |
People アプリの URI スキーム
ms-people: URI スキームを使って、People アプリを起動します。 詳しくは、「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
注意
ビデオを編集したり画像を表示するための 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} は、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
詳しくは、「Windows 設定アプリの起動」と「個人データにアクセスするアプリのガイドライン」をご覧ください。
ストア アプリの URI スキーム
ms-windows-store: URI スキームを使って、UWP アプリ を起動します。 製品の詳細ページ、製品のレビュー ページ、検索ページなどを開きます。たとえば、次の URI は、UWP アプリを開き、Store のホーム ページを起動します。
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/ に移動します |