コンテンツの共有と受信 (HTML)

[ この記事は、Windows ランタイム アプリを作成する Windows 8.x および Windows Phone 8.x 開発者を対象としています。Windows 10 向けの開発を行っている場合は、「最新のドキュメント」をご覧ください]

ユーザーが、だれかと共有したい、または別のアプリで使いたいと強く願う情報と出会うことがよくあります。共有は、軽量かつ操作の流れの邪魔にならない機能であり、アプリに対して簡単に追加することができます。

アプリで共有機能をサポートする方法は 2 種類あります。共有するコンテンツを提供する側のソース アプリにする方法と、共有コンテンツを受け取る側のターゲット アプリにする方法です (アプリはソース アプリにすることもターゲット アプリにすることもできます)。アプリをソース アプリにしてコンテンツを共有する場合は、アプリで提供できるデータ形式を決定する必要があります。できる限り多くのデータ形式をサポートするように努めることをお勧めします。ただし、最終的には、アプリに最適なものを選ぶ必要があります。この決定を終えたら、Windows.ApplicationModel.DataTransfer 名前空間のクラスを使ってデータをパッケージ化します。

アプリをターゲット アプリにして共有コンテンツを受け取る場合は、まずアプリのマニフェスト ファイルを構成して、共有コントラクトをサポートしていることを示す必要があります。

  

アプリのユーザーは、共有チャームからの 1 回のスワイプ操作で、アプリのコンテンツを共有することができます。自分のアプリのファイルや URL を別のデバイスと共有するには、デバイス チャームの [タップして送信] を使います。

  

Windows Phone 8.1 にはチャーム バーがないため、共有オプションは、開発者がアプリ バーなどのコントロールに組み込む形でプログラムによって追加する必要があります。

この共有コントラクトを使うと、サポートされているデータ形式が共有されているシナリオでユーザーが "共有" を起動したときに、アプリがオプションとして表示されます。ターゲット アプリでサポートするデータ形式を選ぶときは、アプリで処理できる形式だけを登録します。詳しいガイダンスについては、「データ形式の選択」をご覧ください。ユーザーが共有オプションを起動すると、共有されるデータをサポートしているターゲット アプリだけが表示されます。

Visual Studio を使っている場合、共有コントラクトをアプリに追加するには、[プロジェクト] メニューの [新しい項目の追加] をクリックし、一覧から [共有ターゲット コントラクト] をクリックします。 このプロセスの一部として、アプリが受け取れる一連のデータ形式とファイルの種類を指定する必要があります。これらの形式は、Visual Studio で package.appxmanifest ファイルを編集するときに [宣言] タブで指定します。

アプリのマニフェスト ファイルでの共有コントラクトのサポートについて詳しくは、「クイック スタート: 共有コンテンツの受信」と「パッケージ マニフェスト スキーマ リファレンス」の「ShareTarget」をご覧ください。

コンテンツの共有方法の例については、コンテンツ共有ソース アプリ サンプルコンテンツ共有ターゲット アプリ サンプルをチェックするか、「クイック スタート: コンテンツの共有」と「クイック スタート: 共有コンテンツの受信」に目を通してください。

次の図に、共有のしくみを大まかに示します。

共有に関与するコンポーネントを示すブロック図

  

QuickLink は Windows Phone 8.1 ではサポートされません。ターゲット アプリが QuickLink を返しても、ソース アプリでは何もせずにそれを無視します。

アプリが共有コントラクトからアクティブ化されたときに開く形式を指定できます。これを行うと、共有専用のカスタマイズされたエクスペリエンスを作成できます。これに関する詳細と設計に関するその他の考慮事項については、「コンテンツの共有のガイドラインとチェック リスト」をご覧ください。

  

ターゲット アプリを実装する場合は、UI エクスペリエンスを検討します。Windows では、ユーザーがアプリを選ぶと、共有ポップアップにそのアプリが表示されます。このビュー状態は、アプリを画面に表示する複数の方法のうちの 1 つです。共有ポップアップで、アプリがコンテンツ共有用のすっきりと整理されたインターフェイスを提供することを確認します。

ソース アプリから受信するコンテンツは変更できません。ただし、データを受信したことをシステムに通知し、データがいつ処理されたかを示すことができます。これは、処理とアップロードに時間がかかる可能性がある写真などのコンテンツの場合に特に重要です。コンテンツ共有ターゲット アプリ サンプルでは、このしくみについて説明しています。また、「クイック スタート: 共有コンテンツの受信」で詳細を確認することもできます。

ソースとターゲットではそれぞれ役割が異なりますが、1 つのアプリ内で両方をサポートすることもできます。たとえば、写真共有アプリでは、ユーザーが別のユーザーに写真をメールで送信できるようにソース アプリとして機能させたい場合と、ユーザーが新しい写真を使って写真アルバムを更新できるようにターゲット アプリとして機能させたい場合があります。

アプリへの共有の追加については、次のトピックとサンプル アプリをご覧ください。

  • コンテンツの共有のガイドラインとチェック リストソース アプリまたはターゲット アプリのどちらを作る場合でも、コンテンツの共有で可能な最善のユーザー エクスペリエンスを提供できる便利な情報を紹介します。
  • 共有のためのデータ形式の選択。共有で使う標準の形式と、標準形式が合わない場合にカスタム形式を作成して使う方法を説明します。
  • コンテンツの共有。ソース アプリを実装する方法の基本がわかります。具体的なシナリオを示し、実装時の検討事項の詳細を提供します。
  • 共有コンテンツの受信共有コントラクトをアプリに追加する方法、ユーザーがコンテンツの共有にアプリを選んだかどうかを検出する方法の基礎、共有されるデータの処理方法について説明します。また、共有の運用をすぐに開始するのに役立つ、いくつかの具体的なシナリオについても説明します。
  • コンテンツ共有ソース アプリ サンプル。このサンプルでは、共有操作を開始する方法と、共有するコンテンツをパッケージ化する方法を示します。
  • コンテンツ共有ターゲット アプリ サンプル。このサンプルでは、共有されているコンテンツを他のアプリから受け取る方法を示しています。
  • ターゲット アプリのデバッグに関するガイドライン。共有ターゲット アプリのデバッグに関与する問題について説明します。