如何共享链接 (HTML)

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

链接或统一资源标识符 (URI) 是用户希望共享的另一种常见数据格式。对链接进行共享的最常见前提是用户已明确选择了一个链接;但是,我们还建议你的应用支持对链接进行共享:

  • 当用户选择的内容也可联机使用时。
  • 作为共享 HTML 时的辅助源。

你需要了解的内容

技术

先决条件

  • 你应当熟悉 Visual Studio 及其关联模板。
  • 你应当熟悉 JavaScript。

说明

步骤 1: 获取 DataTransferManager 对象

DataTransferManager 对象是任何共享操作的起点。

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

步骤 2: 为 datarequested 事件添加事件处理程序

当用户想要调用“共享”时,添加要引发的 DataRequested 事件处理程序。在 Windows 应用商店应用中,当用户调用“共享”超级按钮时,将自动执行此操作。如果你面向 Windows Phone 进行开发,则没有内置的“共享”超级按钮,因此你将需要为用户添加一个控件,以便点击和触发该处理程序。

dataTransferManager.addEventListener("datarequested", function (e) {
    // Code to handle event goes here.
});

步骤 3: 获取 DataRequest 对象

当发生 datarequested 事件时,你的应用会收到 DataRequest 对象。此对象包含的 DataPackage 可用来提供要由用户共享的内容。

var request = e.request;

步骤 4: 向 DataPackage 中添加链接

若要添加链接,请使用 setUri 方法。

request.data.setUri(new Windows.Foundation.Uri("http://www.fabrikam.com"));

备注

对于共享激活协议 URI 的应用,请向 DataPackage 添加一些除 URI 之外的其他信息。这可帮助确保目标应用向所有用户提供更好的体验,包括那些使用其他操作系统 (OS) 的用户。

  • 为该内容提供一个好标题和描述。
  • 包含一个描述正在共享的内容并包含 URI 内联的 HTML 片段。我们建议包括一个字符串,该字符串强调该链接适合 Windows 8 用户,并且在可能的情况下会为其他操作系统 (OS) 上的用户提供一个附加 Web 链接。
  • 包含你的 HTML 片段的一个文本版本。

某些目标应用可能会注册以支持 URI,即使它们仅可以真正处理 http:// 或 https:// URI。提供备用数据格式使得目标应用更有可能成功完成你的方案。

完整示例

下面是用来设置可供用户共享的链接的函数的示例。 有关更完整的示例,请查阅我们的代码库示例

function registerForShare() {
    var dataTransferManager = Windows.ApplicationModel.DataTransfer.DataTransferManager.getForCurrentView();
    dataTransferManager.addEventListener("datarequested", shareLinkHandler);
}

function shareLinkHandler(e) {
        var request = e.request;
        request.data.properties.title = "Share Link Example";
        request.data.properties.description = "A demonstration that shows how to add a link (URI) to share.";
        request.data.setUri(new Windows.Foundation.Uri("http://www.fabrikam.com"));
}

相关主题

共享内容源应用示例

共享和交换数据

如何共享文件

如何共享 HTML

如何共享文本

快速入门:共享内容

DataPackage

Windows.ApplicationModel.DataTransfer

Windows.ApplicationModel.DataTransfer.Share