代码改变世界

快速构建Windows 8风格应用14-ShareContract概述及原理

2012-09-27 15:08  王祖康  阅读(718)  评论(2编辑  收藏  举报

本篇博文主要介绍Share Contract概述、Share Contract实现原理、实现Share Contract意义。

Share Contract概述

我们都知道Windows 8中包含3类不同的Contract:Search Contract、Share Contract、Setting Contract。这三种Application Contract为整合Windows 8体验提供了一致性的编程模型。

现在微博,人人都是非常火的平台,我们很多人都愿意将自己所见所闻在这些平台上进行分享。在我们电脑上可能包含许多个不同的应用,包括社交类。

那么我们怎么将这些应用信息与社交类应用进行分享呢?Windows 8为我们提供了强大的Share Contract,可以让两个应用之间信息进行共享。

Share Contract提供了一种轻量级的,与上下文相关的共享体验。

Windows 8完成了允许跨应用共享的繁重工作,同时共享源应用应该包含尽可能多的数据格式,同样共享目标也应该支持更过的格式。

 

Share Contract实现原理

Windows 8为了方便开发者在应用中实现Share Contract已经做了大量的工作,开发者不需要关系不同应用程序之间相互共享的协议,就可以很轻松的实现共享。开发者只需要在自己的应用程序中申明有东西可以共享或者可以接受其他应用程序共享的内容就OK了。

Windows 8为Share Contract构建的结构中包含“源程序”和“目标程序”,“源程序”和“目标程序”之间的传输纽带是“数据包”,并且“数据包”存在于“源程序”当中。

那么如何实现从源程序到目标程序的共享呢?

1)       源应用需要在DataTransfer Manager(数据传输管理器)中注册,并声明要传输的DataPackage(数据包);

2)       共享代理中,用户选择“Share Contract”(共享),激活应用;

3)       源应用中接受事件,填充数据包;

4)       完成异步调用后返回;

5)       共享代理中筛选出可以进行共享的目标应用和快速链接列表;

6)       用户决定选择哪一个目标应用或快速链接;

7)       共享代理将目标应用激活,方便进行共享,并且目标应用不需要全屏显示,只需要合适的大小显示就可以了。

8)       目标应用处理获取到的数据包中内容;

9)       当目标应用处理完成后,通知共享代理已经完成,就可以移走目标应用的共享页面了;

 

实现Share Contract意义

1)  我们的应用可以建立用户与他们关心的人,关注的其他应用程序间的联系;

2)  用户可以通过其他的应用程序分享到我们开发的应用中;

3)  越多的应用程序,分享机会就更多;