本篇博文主要介绍共享数据包、如何构建共享源、如何构建共享目标、DataTransferManager类。
共享数据包
DataPackage(数据包)是共享数据标准。
共享数据格式可以是多种的,包括文本、URI、HTML、图像等,以及更多可扩展的格式。
我们可以通过以下方法设置需要的分享数据类型:
可以实现效果:
2) SetUri():设置共享Uri;
3) SetHtmlFormat():设置共享Html;
可以实现效果:
5) SetRtf():设置共享富文本;
6) SetData():设置共享数据;
7) SetStorageItems():设置共享文件或文件夹;
具体使用这些方法的示例代码如下:
如何构建共享源
首先作为共享源应用需要考虑的事情有哪些呢?
1) 侦听和处理要参与的共享事件;
2) 内容可以由两种方式共享:隐式[用户没有选择内容就选择“共享”]和显示[用户在应用中选择内容后选择“共享”];
3) 构建Data Package(数据包)以获得最佳结果;
那么如何在自己应用程序中构建共享源呢?
第一步:
需要在应用想要共享数据的页面代码中注册DataTransferManager类的
DataRequested事件,该事件当用户划出Charms(超级按钮),并选择共享(Share Contract)时触发。
第二步:
代码中首先需要通过args.Request获取到当前窗体请求共享对象,然后设置request对象的Data类的相关属性,就可以进行共享文本、图片等信息了。其中Data.Properties.Thumbnail可以设置数据包的缩略图。
第三步:
如何构建共享目标
通常情况下社交类、及时通讯类、云端存储类、打印设备类等应用适用成为共享目标应用。若我们应用程序接受来自其他应用提供的共享数据,那么我们的应用程序就成为了共享目标程序。
应用程序成为共享目标,可以增加应用或服务的使用率,并使服务拥有与用户相关的最新内容。
作为共享目标应用需要考虑哪些事情呢?
1) 注册为共享目标,指定接受的格式;
2) 构建共享用户界面,使其成为共享体验的一部分,包括:[在应用中共享的人员或位置选择]和[快速的轻量级体验];
3) 使用DataPackage,提取最适合共享的数据;
4) 共享完成后,最好提示用户共享成功,并且用户最好能够实现在共享的过程中看到共享进度或者取消共享的操作;
5) 返回一个Quicklink(快速链接),例如分享到的地方;
那么我们如何构建共享目标呢?
第一步:
第二步:
OnShareTargetActivated方法中当应用作为共享目标激活时,导航到应用程序共享目标页面(示例中导航到了MainPage页面)。
第三步:
代码中首先将e.Parameter强制转换为ShareOperation类,然后通过shareOperation对象可以获取到数据包的属性,包含的文本、Uri、图片等其他格式的信息。
返回QuickLink
:
我们的目标应用也可以在获取数据包数据的方法中通过shareOperation.QuickLinkId来判断是否从QuickLink进入目标应用程序,从而根据不同的QuickLinkId做特别的处理。
DataTransferManager
类
DataTransferManager类在实现Share Contract时扮演了非常重要的角色,那么它包含哪些重要方法和事件呢?
1) DataRequested事件:共享操作开始时触发;
2) TargetApplicationChosen事件:目标应用被选择时触发;
3) GetForCurrentView方法:获取与当前窗体相关的DataTransferManager;
4) ShowShareUI方法:显示共享面板;
本文转自 王祖康 51CTO博客,原文链接:http://blog.51cto.com/wzk89/1017700
,如需转载请自行联系原作者