如何共享文本 (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());
}
};