如何共享链接 (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"));
}