クイックリンクを作成する方法 (HTML)

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

ユーザーはコンピューター エクスペリエンスを拡張してコンテンツを友人や家族と共有することを望んでいます。この考えを取り入れたアプリでは、ユーザーがコンテンツをすばやく簡単に共有できる環境を作ります。共有ターゲット コントラクトをサポートすると、QuickLink と呼ばれるカスタム ショートカットを使って、より簡単な共有エクスペリエンスを提供できます。QuickLink はアプリに対するリンクのように動作し、特定のユーザー動作向けにカスタマイズされます。

ユーザーは、コンテンツを共有するときにコンテンツの共有方法や共有相手を選びたいと思っています。共有の一般的な例に、メールを使った共有があります。ユーザーがメールで何かを共有したいと思ったら、共有相手のメール アドレスを入力する必要があります。最初はメール アドレスを入力することは気にならなくても、後の共有セッションで手動で繰り返し入力していると面倒になってきます。このメール アプリに対するより良いエクスペリエンスは、QuickLink を作って前回ユーザーが行った選択を次回も適用することです。

QuickLink は、実際にはデータを何も格納しません。その代わりに識別子を持ち、選択されたときにその識別子がアプリに送られます。QuickLink が動作するためには、アプリがデータを、データに関連付けられた ID と共に、クラウドやユーザーのコンピューターなどに保存する必要があります。これを行う方法はたくさんありますが、データ保存方法の 1 つとして、「アプリケーション データの管理」をご覧ください。

共有ターゲット コントラクトのサポートについて詳しくは、「クイックスタート: 共有コンテンツの受信」をご覧ください。このトピックでは、ユーザーがコンテンツの共有を選んだときに、アプリが従わなければならない基本的な手順について説明しています。

理解しておく必要があること

テクノロジ

必要条件

  • Microsoft Visual Studio と関連するテンプレートについて理解している必要があります。
  • JavaScript について理解している必要があります。
  • クイック スタート: 共有コンテンツの受信」で説明されている共有コンテンツを受け取る方法について理解している必要があります。

手順

QuickLink オブジェクトは ShareOperation クラスの一部です。

var quickLink = new Windows.ApplicationModel.DataTransfer.ShareTarget.QuickLink();

QuickLink オブジェクトのインスタンスを作成したら、最初にターゲット ID 文字列を構成する必要があります。これは、ユーザーが QuickLink を選んだときにシステムからアプリに返される文字列です。次の例に、ターゲット ID をセットアップする方法を示します。

quickLink.id = "123456789";

次に、QuickLink のタイトルを指定します。タイトルを付けることで、ユーザーは QuickLink を見分け、その目的を理解できます。

quickLink.title = document.getElementById("quickLinkTitle").value;

// For quicklinks, the supported FileTypes and DataFormats are set 
// independently from the manifest.
var dataFormats = Windows.ApplicationModel.DataTransfer.StandardDataFormats;
quickLink.supportedFileTypes.replaceAll(["*"]);
quickLink.supportedDataFormats.replaceAll([dataFormats.text, dataFormats.uri, 
    dataFormats.bitmap, dataFormats.storageItems, dataFormats.html, customFormatName]);

Windows.ApplicationModel.Package.current.installedLocation.getFileAsync("images\\user.png").then(function (iconFile) {
    quickLink.thumbnail = Windows.Storage.Streams.RandomAccessStreamReference.createFromFile(iconFile);
});

ステップ 4: サポートするファイルの種類を指定する。

次に、QuickLink がサポートするファイルの種類とデータ形式を指定します。QuickLink は、共有ソース アプリケーションから共有された DataPackage にこれらのファイルの種類またはデータ形式のいずれかが含まれている場合にのみ表示されます。

var dataFormats = Windows.ApplicationModel.DataTransfer.StandardDataFormats;
quickLink.supportedFileTypes.replaceAll(["*"]);
quickLink.supportedDataFormats.replaceAll([dataFormats.text, dataFormats.uri, 
    dataFormats.bitmap, dataFormats.storageItems, dataFormats.html, customFormatName]);

アイコンには、ユーザーが QuickLink を使用せずにアプリを選ぶときに表示されるアイコンと同じものを使うことをお勧めします。これにより、このリンクがアプリに関連付けられていることをユーザーが知ることができます。

Windows.ApplicationModel.Package.current.installedLocation.getFileAsync("images\\user.png").then(function (iconFile) {
    quickLink.thumbnail = Windows.Storage.Streams.RandomAccessStreamReference.createFromFile(iconFile);
});

QuickLink の作成が終わったら ShareOperation.reportCompleted メソッドを呼び出してシステムに送ります。

shareOperation.reportCompleted(quickLink);

完全な例

次の関数は QuickLink を作って返します。アプリの共有操作が終了した後で、ShareOperation.reportCompleted を直接呼び出す代わりにこの関数を呼び出してください。

function reportCompleted() {
    var quickLink = new Windows.ApplicationModel.DataTransfer.ShareTarget.QuickLink();
    quickLink.id = "123456789";
    quickLink.title = document.getElementById("quickLinkTitle").value;
    
    // For quicklinks, the supported FileTypes and DataFormats are set 
    // independently from the manifest.
    var dataFormats = Windows.ApplicationModel.DataTransfer.StandardDataFormats;
    quickLink.supportedFileTypes.replaceAll(["*"]);
    quickLink.supportedDataFormats.replaceAll([dataFormats.text, dataFormats.uri, 
        dataFormats.bitmap, dataFormats.storageItems, dataFormats.html, customFormatName]);

    Windows.ApplicationModel.Package.current.installedLocation.getFileAsync("images\\user.png").then(function (iconFile) {
        quickLink.thumbnail = Windows.Storage.Streams.RandomAccessStreamReference.createFromFile(iconFile);
        shareOperation.reportCompleted(quickLink);
    });
}

関連トピック

コンテンツ共有ターゲット アプリ サンプル

データの共有と交換

クイック スタート: 共有コンテンツの受信

QuickLink

ShareOperation

Windows.ApplicationModel.DataTransfer

Windows.ApplicationModel.DataTransfer.Share

ターゲット アプリのデバッグに関するガイドライン