快速构建Windows 8风格应用14-ShareContract概述及原理
原文:快速构建Windows 8风格应用14-ShareContract概述及原理
本篇博文主要介绍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) 越多的应用程序,分享机会就更多;
快速构建Windows 8风格应用14-ShareContract概述及原理的更多相关文章
- 快速构建Windows 8风格应用23-App Bar概述及使用规范
原文:快速构建Windows 8风格应用23-App Bar概述及使用规范 本篇博文主要介绍App Bar概述.App Bar命令组织步骤.App Bar最佳实践. App Bar概述 Windo ...
- 快速构建Windows 8风格应用1-开发工具安装及模拟器使用
原文:快速构建Windows 8风格应用1-开发工具安装及模拟器使用 本篇博文主要介绍的是开发Windows 8风格应用中常用的两个开发工具:Visual Studio 2012和Expression ...
- 快速构建Windows 8风格应用21-构建简单媒体播放器
原文:快速构建Windows 8风格应用21-构建简单媒体播放器 本篇博文主要介绍如何构建一个简单的媒体播放器. <快速构建Windows 8风格应用20-MediaElement>博文中 ...
- 快速构建Windows 8风格应用36-商店应用发布流程
原文:快速构建Windows 8风格应用36-商店应用发布流程 引言 在发布应用之前,我们需要注册开发者账号才能够发布应用.我们可以登录https://appdev.microsoft.com/Sto ...
- 快速构建Windows 8风格应用32-构建辅助磁贴
原文:快速构建Windows 8风格应用32-构建辅助磁贴 引言 Windows Phone中,我们开发者可能会开发的一个功能点是将数据列表中某一项"Pin To Start(固定到开始屏幕 ...
- 快速构建Windows 8风格应用29-捕获图片与视频
原文:快速构建Windows 8风格应用29-捕获图片与视频 引言 本篇博文主要介绍Windows 8中相机的概念.捕获图片与视频的基本原理.如何实现捕获图片与视频.相机最佳实践. 一.相机 关于相机 ...
- 快速构建Windows 8风格应用17-布局控件
原文:快速构建Windows 8风格应用17-布局控件 本篇博文主要介绍三种常用的布局控件:Canvas.Grid.StackPanel. Panel类是开发Windows 8 Store应用中一个重 ...
- 快速构建Windows 8风格应用15-ShareContract构建
原文:快速构建Windows 8风格应用15-ShareContract构建 本篇博文主要介绍共享数据包.如何构建共享源.如何构建共享目标.DataTransferManager类. 共享数据包 Da ...
- 快速构建Windows 8风格应用13-SearchContract构建
原文:快速构建Windows 8风格应用13-SearchContract构建 本篇博文主要介绍如何在应用中构建SearchContract,相应的原理已经在博文<快速构建Windows 8风格 ...
随机推荐
- MEF初体验之十二:Composition Batch
一个MEF容器实例是不可变的.如果catalog支持改变(像观察一个目录的改变)或是如果你的代码在运行时添加或移除部件,改变都可能发生.以前,你不得不作出改变并在组合容器上调用它的组合方法.在Prev ...
- SERVERCONFIG
-- Create tablecreate table ERP_SERVERCONFIG( id NUMBER not null, servicename VARCHAR2(500), service ...
- 论docker中 CMD 与 ENTRYPOINT 的区别(转)
Dockerfile 用于自动化构建一个docker镜像.Dockerfile里有 CMD 与 ENTRYPOINT 两个功能咋看起来很相似的指令,开始的时候觉得两个互用没什么所谓,但其实并非如此: ...
- Linux网络编程一站式学习
提要 学过非常多遍计算机网络,依旧不会网络编程. 看完这篇文章之后就不会是这样了. 环境:Ubuntu14.04 64bit 何为Socket 是基于TCP/IP的网络应用编程中使用的有关数据通信的概 ...
- iptables惹的祸
我的工作环境总是一台Mac机+在Mac机上跑的虚拟机(Virtual Box) 有一个错误我总是在犯:宿主机总是无訪问到虚拟机里的web服务. 解决方法也非常easy:那就是关闭虚拟机上的防火墙!!! ...
- 编写高质量代码改善C#程序的157个建议[1-3]
原文:编写高质量代码改善C#程序的157个建议[1-3] 前言 本文主要来学习记录前三个建议. 建议1.正确操作字符串 建议2.使用默认转型方法 建议3.区别对待强制转换与as和is 其中有很多需要理 ...
- react.js 从零开始(一)
React 是什么? 网络上的解释很多...我这里把他定义为 通过javascript 的形式组件化 html的框架... React 仅仅是 VIEW 层. React 提供了模板语法以及一些函数钩 ...
- android studio 在线更新android sdk,遇到无法Fetching https://dl-ssl.google.com/...的解决方式
近期实在受不了eclipse的"迟钝",准备入手Android studio开发环境,可是貌似不太顺利,安装成功了Android studio,在线更新Android adk的时候 ...
- awk学习总结(两) How awk works and awk CMD in a file
测试文件names Tom Savage 100 Molly Lee 200 John Doe 300 $0 代表file的整行; $1,第一列;$2,第二列...... $ awk '/Tom/{p ...
- Handler详细说明系列(六)——View的post()详解
MainActivity例如下列: package cc.testui2; import android.os.Bundle; import android.view.View; import and ...