如何共享文本 (HTML)

[ 本文适用于编写 Windows 运行时应用的 Windows 8.x 和 Windows Phone 8.x 开发人员。如果你要针对 Windows 10 进行开发,请参阅 最新文档 ]

共享文本是共享内容的最基本的、也是最必要的方法。我们建议你的应用支持共享文本:

  • 当你希望内容可供大量的目标应用使用时。
  • 作为共享链接或 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