データの共有と交換 (HTML)

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

ここでは、アプリでデータの共有や交換ができるさまざまな方法について説明します。

今日のユーザーは、テクノロジによって他のユーザーに接続したり、データを共有したりできると思い込んでいます。ユーザーがソーシャル ネットワークでリンクを共有する、レポートに画像をコピーする、クラウド ストレージにファイルをアップロードするなどの操作を行う場合、今日のアプリでは、共有先や交換先のユーザーもそれらのデータを利用できる必要があります。

アプリ間でデータを交換するための方法は複数あります。そのうちの 1 つである共有コントラクトは、新しい機能です。共有を効果的に利用するには、いくつかのことを覚える必要があります。もう 1 つの方法であるクリップボードは、記述するコードのプラットフォームに関係なくほとんどの開発者によく知られています。しかし、今日の環境でクリップボードを使うには、コンテンツについて考慮するだけでなく、コピーと貼り付けに使う UI についても考慮する必要があります。主にタッチを利用してユーザー入力を取得するアプリでは特にそうです。さらに別の方法として、保存があります。保存もおなじみの機能ですが、従来はデータの交換や共有のためには使われていませんでした。

ここでは、これらのさまざまなデータ共有と交換方法について説明し、アプリやユーザーに最適なオプションを選ぶためのヒントを示します。これらのオプションのしくみを直接確認するには、コード ギャラリーに移動し、次のサンプルを確認してください。

使う方法が既に決まっていて、実際の作業についての説明が必要な場合は、次のクイック スタート トピックが役立ちます。

共有チャーム

共有コントラクトを使うと、データをアプリ間ですばやく交換できます。たとえば、ユーザーがソーシャル ネットワーキング アプリを使って友人と Web ページを共有する場合や、後で参照するためにリンクをメモ帳アプリで保存する場合があります。 別のアプリのコンテキストですばやくコンテンツを受け取ることができるようなシナリオを実現するには、共有コントラクトの利用を検討してください。そのようなシナリオを代表するコンテンツとして、Web ページや写真があります。

  

Share charmはいつでも利用できるようになっており、共有コンテンツを受け取ることができるすべてのアプリにすばやく簡単にアクセスできます。

  

Windows Phone 8.1 にはCharms barがないため、共有のオプションは開発者がプログラムで組み込む必要があります。これは、いつでもアクセスできるようにアプリ バーに含めるか、または特定のページの特定のコントロールに関連付けることができます。

共有コントラクトには 2 つの要素 (データの共有元となる "ソース" とデータを受け取る "ターゲット") があります。アプリに共有を追加する方法を理解するには、まず「共有の追加」を読むことをお勧めします。これにより、共有のしくみや、実際に共有を利用する方法がわかります。また、コンテンツ共有ソース アプリのサンプルに関するページコンテンツ共有ターゲット アプリのサンプルに関するページでは、2 つの完全なコード例を確認できます。

共有コントラクトへの参加について詳しくは、「共有コンテンツの受信」をご覧ください。

タップして送信

もう 1 つの共有機能として、[タップして送信] と呼ばれる機能があります。[タップして送信] オプションは、共有ソースとして機能するアプリに自動的に組み込まれます。この機能では、近距離通信 (NFC) を使ってアプリのユーザー間でデータを共有します。[タップして送信] は、特に、近くにいる友人とリンクやファイルを共有するのに適しています。[タップして送信] 機能の利用は、NFC と近接通信テクノロジをサポートするデバイスに限られます。

  

[タップして送信] は、共有するデータをアプリが保持しているときにデバイス チャームに自動的に表示されるため、ユーザーはタッチ ジェスチャやマウス クリックによって簡単にこの機能を利用できます。

  

Windows Phone 8.1 にはCharms barがないため、[タップして送信] オプションは開発者がプログラムで組み込む必要があります。これは、いつでもアクセスできるようにアプリ バーに含めるか、または特定のページの特定のコントロールに関連付けることができます。

詳しくは、近接通信とタップについてのページをご覧ください。

コピーと貼り付け

コピーと貼り付けは、2 つの異なるアプリ間や同じアプリ内でデータを交換するための古典的な方法です。ほとんどのアプリでは、コピー操作と貼り付け操作をある程度サポートすることができます。またこれらの操作は、ユーザーがオンラインで頻繁に利用する操作でもあります。コピーと貼り付けは共有によく似ているため、どちらを使ってもかまわないように思えます。しかし、優秀な開発者は、これら 2 つをユーザー エクスペリエンスが大きく異なる別個の機能であると位置付けています。

  

クリップボードが共有よりも優れている点の 1 つは、Windows ストア アプリとデスクトップの間でデータを移動するための唯一の方法であることです。ユーザーがコピーと貼り付けのコマンドにアクセスする方法を考慮してください。マウスとキーボードを使う環境では、古典的なショートカット キーがあれば十分です。しかし、タブレットを使っているユーザーは、そのようなショートカットを利用できません。その場合は、アプリ バーやコンテキスト メニューなどのコントロールを使ってコピーと貼り付けのコマンドを表示することを検討します。詳しくは、「クリップボード コマンドのガイドラインとチェック リスト」や、クリップボード アプリの完全なコード例に関するページをご覧ください。

保存によるファイルの受信

2 つのアプリ間でデータを交換するためのもう 1 つの方法は、相手のアプリから自分のアプリにファイルを保存してもらうことです。 たとえば、Microsoft Word を使って提案書に取り組んでいて、その提案書を同僚も利用できるようにするとします。この場合、ファイルを保存するときに、ファイルの保存場所として Microsoft OneDrive を選ぶことができます。ファイルを OneDrive に保存すると、そのファイルは OneDrive によって自動的に追跡されます。そのため、ユーザーが自分でファイルを追跡する必要はありません。

アプリに保存されたファイルを受け取るには、そのアプリがファイル保存ピッカー コントラクトに参加している必要があります。このコントラクトに参加しているアプリは、ファイルを保存するエントリ ポイントを提供するアプリから使うことができるファイル ピッカーでホストされます。 ユーザーが、アプリがファイルを保存する標準的な場所であることを期待し、ファイル名、ファイルの種類、または保存場所を頻繁に指定する場合は、ファイル保存ピッカー コントラクトへの参加を検討します。 ファイル オープン ピッカー コントラクトに既に参加している場合、ファイル保存ピッカー コントラクトを追加することは、ユーザーがすでにアプリに期待していることへの自然な拡張です。 ファイル保存ピッカー コントラクトへの参加について詳しくは、「クイック スタート: ファイル ピッカーによるファイルへのアクセス」や完全なコード例に関するページをご覧ください。

サポートする必要があるデータの共有オプションと交換オプション

他のアプリにファイルの保存場所として自分のアプリを使用させる方法は、ユーザーがファイルやフォルダーを使う場合に適しています。ただし、URL や選んだテキストなどの細かいデータを使う場合には適していません。そのような場合は、共有コントラクトやコピーと貼り付けコマンドが適しています。一方、共有チャームと保存の両方をサポートするのが望ましいこともよくあります。たとえば、ユーザーが OneDrive などのクラウド型ストレージ サービスを使ってファイルを保存するとします。この場合、共有コントラクトと保存は、どちらも有効な方法です。つまり、ユーザーがどのようにアプリを使うかを考慮したうえで、ユーザーの期待に応えることができ、全体として最良のユーザー エクスペリエンスを提供するコントラクトや機能をサポートする必要があります。