Windows アプリの既定のプラットフォーム

この記事では、Windows アプリ開発者向けに、Windows 上の既定のアプリ プラットフォームと統合する方法と、ユーザーに Windows 11 の既定のアプリ設定の変更を指示する方法について説明します。

アプリの既定のプラットフォームを使用すると、開発者は、次の 2 つの主なシナリオをサポートするために、Windows でファイルとリンクの種類をサポートするためにアプリを登録できます。

  • ユーザーは、[設定][既定のアプリ UX] を使用して、Windows で特定のファイルの種類またはリンクの種類を開くために使用するアプリを指定できます。
  • 開発者は、ファイルまたはリンクの種類を呼び出すことによって、アプリ間の起動を容易にできます。

エンド ユーザー向けの既定のアプリ エクスペリエンス

Windows 11 では、ユーザーは Windows 設定やその他のシステム UI を使用して既定のアプリを変更できます。

  • Windows では、そのファイルまたはリンクの種類に登録されている新しいアプリがインストールされたときに、ファイルまたはリンクの種類を開くと、ユーザーに自動的にメッセージが表示されます。
  • アプリでは、ユーザーを [設定] に移動して既定のアプリ設定を変更することもできます。これにより、アプリ内プロンプトまたはドキュメントを使用してこのプロセスをユーザーに指示できます。

アプリ開発者向けの既定のアプリ設定

アプリを登録して、ファイルとリンクの種類の既定のハンドラーにすることができます。 Windows デスクトップ アプリケーションと WinUI アプリはどちらも、既定のハンドラーとして登録できます。 ユーザーが既定のハンドラーとしてアプリを選択した場合、その種類のファイルまたはリンクが呼び出されると、Windows によってアプリがアクティブ化されます。

開発者向けの既定のアプリ プラットフォームのベスト プラクティス

  • ms-settings:defaultapps URI を使用して、既定のアプリ設定ページまたは既定のアプリ内のアプリのページを直接起動します。 詳細については、「 既定のアプリ設定ページを起動する」を参照してください。
  • ユーザーに配慮しつつプロンプトを提供します。 アプリがサポートするファイルの種類を開いたときにコンテキスト プロンプトを使用しますが、既定ではありません。
  • 明確な手順を提供する: アプリまたはサポート サイトにスクリーンショットまたはステップ バイ ステップ ガイドを含めます。
  • ユーザーの選択を尊重する: 積極的なプロンプトや繰り返しの通知を避けます。
  • その型のすべての起動を処理する必要がある場合にのみ、型に登録します。 たとえば、アプリでファイルの種類のみを内部的に使用する必要がある場合は、既定のハンドラーとして登録する必要はありません。 型に登録する場合は、その型に対してアプリがアクティブ化されるときに想定される機能をエンド ユーザーに提供する必要があります。

たとえば、 Launcher.LaunchUriAsync を呼び出して、指定したリンクの種類に対してユーザーが構成した既定のアプリを起動するように Windows に指示することで、アプリは別のアプリに渡すことができます。

アプリは、 https:などの既知の URI スキームを呼び出すことによって、既定で構成されたユーザーを使用するように Windows に指示できます。

アプリは、アプリの既定のプラットフォーム ( ms-settings: など) に登録されているリンクの種類がわかっている場合に、起動する別のアプリを明示的に選択できます。

URI スキームは、公式の標準、公開されている、または独自のものである可能性があります。 たとえば、

  • https: は、インターネット割り当て番号機関によって永続的なスキームとしてRFC8615として文書化されています。
  • Spotify は、 spotify: スキームを公開しています。 Spotify URI と ID を参照してください。
  • 他のスキームは独自のものであり、アプリが登録され、実装方法がわからない URI スキームの既定値に設定されている場合は、ユーザーのエンド ツー エンド エクスペリエンスが壊れる可能性があります。

すべてのアプリは、サポートされている型に登録することで、アプリの既定のプラットフォームに参加できます。 パッケージ アプリでは、アプリ パッケージ マニフェスト スキーマ ファイルの uap:FileTypeAssociation 要素を使用して、サポートされているファイルの種類を宣言できます。 パッケージ化されていないアプリでは、その他のファイル関連付けメカニズムがサポートされています。 詳細については、「ファイルの種類とファイルの関連付け」および「ファイルの関連付けと既定のプログラムのガイドライン」を参照してください。

アクティブ化を処理する

Windows アプリを起動すると、Windows は、ファイルの関連付けまたはリンクの種類の呼び出しから起動されたことを判断できる情報をアプリに提供します。 詳細については、「 Windows アプリでのファイルのアクティブ化の処理」および「Windows アプリでのURI のアクティブ化の処理」を参照してください。

アプリの既定のプラットフォームのセキュリティに関する考慮事項

ユーザーが認識することなく、マルウェアによる設定の変更からユーザーの既定のアプリの選択を保護するには、Windows では、Windows システム UI を使用してアプリの既定の設定を設定する必要があります。

  • Windows では、システム UI でのユーザー操作なしで既定のアプリをプログラムで変更することはできません。 詳細については、マネージド環境でのアプリの既定値に関するページを参照してください。
  • アプリの既定値のユーザー設定データは、レジストリ データ ストアで難読化されます。 レジストリ ベースの変更は、アプリではサポートされていません。
  • アプリの既定値のユーザー設定データは、アプリが既定のデータを書き込むのをブロックする Windows フィルター ドライバー (UCPD.sys) によって保護されます。
  • アプリは、特定の種類の既定のアプリに対してクエリを実行できます。 詳細については、「 IApplicationAssociationRegistration::QueryCurrentDefault」を参照してください
  • Microsoft Store によって配布されるアプリは、Microsoft Store ポリシー (特に セクション 10.2.8 ) に従う必要があります。このポリシーでは、アプリでは、アプリの既定の設定を含む、Windows 設定を更新するためにサポートされている方法のみを使用する必要があります。

マネージド環境でのアプリの既定値

管理対象 PC では、IT 管理者はポリシーを使用してアプリの既定値を制御できます。 アプリの既定のプラットフォームでは、これらの管理シナリオを容易にするために、グループ ポリシーとモバイル デバイス管理 (MDM) ポリシーが提供されます。 これらのポリシーは、ローミング ユーザー プロファイルとも連携して、より複雑な環境をサポートします。 これらのポリシーを使用しないソリューションは、上記のセキュリティに関する考慮事項のため、正しく機能しない可能性があります。 詳細については、「ApplicationDefaults Policy CSP」および「移動ユーザー プロファイルの展開」を参照してください。