酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

Windowsストアアプリの共有コントラクトの仕組み

共有チャームで共有したデータが受信側のアプリで意図通りに渡せていないという質問がありました。Windowsストアアプリでの共有コントラクトの仕組みは下図のようになっています(イメージ)。

f:id:ch3cooh393:20141024113712j:plain

例えば、共有しようとしているアプリ(上図:一番上のアプリ)は、共有コントラクトへ「タイトル」「本文」「画像」を渡します。共有コントラクトはそれらのデータを受信可能なアプリを探して、ユーザーに共有チャーム上で提示します。

共有チャームに表示されたアプリ一覧の中からユーザーは任意のアプリを選択します。共有チャームでユーザーがどのアプリを選択したのかについては、送信側のアプリからはデータをどのアプリが受け取ったか分かりません。

また受信側アプリで受け取ったデータをどのように扱うかについては取り決めがないため、扱いについてはマチマチです。Windows 8.0+当時最新のアプリで共通処理を試したところ、以下のような結果になっていました。

  • メールアプリ
    • タイトル+本文、タイトル+画像の組み合わせでしか受信してくれない。
    • タイトル+本文+画像を渡すと、本文が無視される
  • Evernote Touch
    • タイトル+本文+画像を全てを受け取ってくれる

関連記事

共有チャームを使った共有の仕方については過去に書いた記事があります。