テキストを共有する方法 (HTML)

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

テキストの共有は、コンテンツを共有する最も基本的ですが欠かせない方法の 1 つです。次のような場合に、アプリでテキストの共有をサポートすることをお勧めします。

  • コンテンツを多数のターゲット アプリで利用できるようにする。
  • リンクや HTML を共有するときに補助的なソースとして使う。

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

テクノロジ

必要条件

  • Visual Studio と関連するテンプレートについて理解している必要があります。
  • JavaScript について理解している必要があります。

手順

ステップ 1: 共有ソースとしてアプリをセットアップする

ユーザーが "共有" を起動するときに呼び出される DataRequested イベント ハンドラーを追加します。Windows ストア アプリでは、ユーザーが共有チャームを起動すると自動的にこのイベントが発生します。Windows Phone 用の開発を行っている場合は、組み込みの共有チャームがないため、ユーザーがタップするコントロールを追加してハンドラーをトリガーする必要があります。

var dataTransferManager = Windows.ApplicationModel.DataTransfer.DataTransferManager.getForCurrentView();
dataTransferManager.addEventListener("datarequested", shareTextHandler);

残りの手順では、shareTextHandler 関数を実装します。

ステップ 2: DataRequest オブジェクトを取得する

datarequested イベントが発生すると、アプリは DataRequest オブジェクトを受け取ります。このオブジェクトに含まれている DataPackage を使って、ユーザーが共有するコンテンツを提供することができます。

var request = e.request;

ステップ 3: タイトルと説明のプロパティを設定する

request.data.properties.title = "Share Text Example";
request.data.properties.description = "Demonstrates how to share.";

ステップ 4: DataPackage にテキストを追加する

テキストを追加するには、setText メソッドを使います。

request.data.setText("Hello World!");

完全な例

テキストをユーザーが共有できるように設定する関数の例を次に示します。完全なコード例については、コード ギャラリーのサンプルをご覧ください。

function shareTextHandler(e) {
    var request = e.request;
    request.data.properties.title = "Share Text Example";
    request.data.properties.description = "Demonstrates how to share.";
    request.data.setText("Hello World!");
}

app.onactivated = function (args) {
    if (args.detail.kind === activation.ActivationKind.launch) {
        if (args.detail.previousExecutionState !== activation.ApplicationExecutionState.terminated) {
            // This app is newly launched. Register the app as share source.
            var dataTransferManager = Windows.ApplicationModel.DataTransfer.DataTransferManager.getForCurrentView();
            dataTransferManager.addEventListener("datarequested", shareTextHandler);
        } else {
            // TODO: This app was reactivated from suspension.
            // Restore the app state here.
        }
        args.setPromise(WinJS.UI.processAll());
    }
};

関連トピック

コンテンツ共有ソース アプリ サンプル

データの共有と交換

ファイルを共有する方法

HTML を共有する方法

リンクを共有する方法

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

DataPackage

Windows.ApplicationModel.DataTransfer

Windows.ApplicationModel.DataTransfer.Share