写点什么

Windows 分享,Windows 8 中崭新的数据交互方式

2011 年 9 月 27 日

微软最近推出了一项称为 Windows 分享(Windows Share)的机制,该机制可实现 Windows 8 中不同应用间的信息共享。应用间可对文本、位图、HTML 代码、URI、文件以及其他类型的数据进行共享,这种机制有着广泛的应用场景。例如,当应用收到信息后可同时将信息发送至 Twitter 和 Facebook,极大简化了向社交网络中再次发布的过程(信息自动传递而无需登陆不同的社交网站)。

微软高级项目经理 Billie Sue Chafins 和伙伴开发经理 Steve Seixeiro,在 BUILD 2011 大会上发表了题为“分享:用你的应用来提升Windows 8 的分享体验”的演讲。他们详细介绍了即将发布的Windows 8 中的分享特性。Windows 分享类似于某种全局剪贴板,可以在应用间相互传递信息,但与传统剪贴板不同的是,它能够更好的在系统中集成并且提供更加丰富的功能。

Windows 分享接受以下标准的数据格式:文本、富文本、位图、可存储项(如文件等)、URI、HTML 代码等,此外,其他一些扩展格式也可通过信息流传输:地址、联系人、人员信息、地理位置等。用户在应用中分享信息时,系统会列出所支持信息类型的应用清单,这时,只需从中选择一个,数据便会立即发出。

分享特性定义了传输过程中以下类型的参与者:

  • 源应用——任何可以与其他应用分享信息的应用
  • 目标应用——任何可以接受来自其他应用分享的数据的应用
  • 代理——数据源与目标之间的传输媒介

只要有可供分享的信息,大多数应用都可作为源应用,微软也鼓励开发者开发出具备源特性的应用。目标应用可以是那些对接受和处理信息感兴趣的应用。分享特性的好处在于,Windows 将会提供内置的信息交换协议,如此一来,开发者将免去为数据交换首先要在数据格式上达成一致的烦恼。对于扩展格式的引入,需要首先提供对已知数据格式的支持,所以,建议使用 Schema.org 中支持的标准数据格式。

举例来说,从 IE 中分享网页 URL 或文本到 Twitter 或 Facebook 这类社交网站,目标应用是 Tweet@rama 和 Socialite 这种负责将数据发送到各自网络的应用。信息分享的方式和途径多种多样,这些都等着开发者在更多的应用中实践。

要想分享数据,源应用首先需要在数据传输管理器(Data Transfer Manager)中注册,当用户在 Windows 选择分享操作时会首先列出已注册的数据源,然后准备数据包(Data Package)并通过异步调用的方式将数据包传送给代理。代理会根据接收到的数据类型,从已注册的目标应用中选择目标应用,然后显示出供用户选择。一旦用户选择了发送目标,代理将激活该应用并同时将数据包传输给它。整个过程完成后,目标应用会给出传输完毕的提示,整个过程如下图所示:

分享是由底层新增的 Windows.ApplicationModel.DataTransfer 模块实现,该模块与 Windows 运行时(WinRT)绑定。下面是用 JavaScript 实现的准备数据源的代码示例:

// 创建数据传输管理器(Data Transfer Manager)

var dataTransferManager = Windows.ApplicationModel.DataTransfer.DataTransferManager.getForCurrentView();

// 创建填充数据包的事件监听器

dataTransferManager.addEventListener(“datarequested”, function (e) {

// 将要分享的数据填充到数据包中

var request = e.request;

request.data.properties.title = “Title for data”;

request.data.properties.description = “Description of the data”;

request.data.setText(“Text to share”);

});

目标应用应具备修改应用描述文件以及创建 HTML 页面的功能,这样在进行分享时,目标应用才能被正确显示。Visual Studio 提供了创建这种应用的基础模板,大大简化了开发工作。

Windows 分享为 Windows 8 提供了一种便捷的可在应用间进行信息交互的方式,同时也与 Metro 界面相互兼容。

查看英文原文: Windows Share, a New Data Exchange Mechanism in Windows 8

2011 年 9 月 27 日 15:441179
用户头像

发布了 156 篇内容, 共 42.3 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

基于Prometheus的微服务应用监控

易观大数据

滴滴推理引擎IFX:千万规模设备下AI部署实践

滴滴技术

人工智能 学习 AI 滴滴技术 IFX

GPU虚拟机创建时间深度优化

滴滴技术

云计算 虚拟化 滴滴技术

腾讯大牛半年心血高级编程PDF,帮你轻松构建企业级Web应用

周老师

Java 编程 程序员 架构 面试

Zeppelin SDK :Flink 平台建设的基石

Apache Flink

flink

C/C++函数指针与指针函数

C语言与CPP编程

c++ C语言 函数指针

突破传统 区块链如何实现病历永存

CECBC区块链专委会

区块链 电子病历 信息共享

可编程网卡芯片在滴滴云网络的应用实践

滴滴技术

云计算 芯片 滴滴技术

实时数仓在滴滴的实践和落地

滴滴技术

大数据 滴滴技术 数据通道服务

滴滴Ceph分布式存储系统优化之锁优化

滴滴技术

云计算 分布式存储 Ceph 滴滴技术

【Spring注解驱动开发】AOP核心类源码解析,这是最全的一篇了!!

冰河

spring aop ioc

分布式QoS算法解析

焱融科技

分布式 算法 焱融科技 分布式文件存储 QoS

1.Flink检查点算法-15

小知识点

scala 大数据 flink

在Rust里面嵌入python代码

lipi

Python rust

滴滴七层接入平台实践和探索

滴滴技术

运维 滴滴技术 微服务治理 七层接入

数据分析之伯克森谬误:颜值和性格真成反比吗

KAMI

人生 数据分析 数据

【高并发】要想学好并发编程,关键是要理解这三个核心问题

冰河

写作 多线程 高并发 同步 分工

缓冲区溢出

C语言与CPP编程

c++ C语言 缓冲区 堆栈溢出

出自字节技术专家之手的SpringBoot全栈开发实战,真香

周老师

Java 编程 程序员 架构 面试

滴滴数据通道服务演进之路

滴滴技术

大数据 滴滴技术 数据服务通道

滴滴数据仓库指标体系建设实践

滴滴技术

大数据 数据仓库 滴滴技术

自定义线程池来实现文档转码

架构师修行之路

架构师 0 期第十二周命题作业

何伟敏

滴滴云平台事业群——就是稳!

滴滴技术

招聘 滴滴技术 滴滴云平台事业群分享月

Redis做消息队列全攻略

架构师修行之路

redis MQ 消息队列

c语言函数指针之回调函数

C语言与CPP编程

C语言 回调函数 函数 函数指针

指针变量的传值和传址

C语言与CPP编程

c++ 指针 C语言

区块链技术成为金融业务应用热点

CECBC区块链专委会

区块链 人工智能 金融

滴滴ElasticSearch千万级TPS写入性能翻倍技术剖析

滴滴技术

大数据 elasticsearch 滴滴技术

物联网的银河,华为的桨,少年的歌

脑极体

拥抱K8S系列-03-服务器部署应用和docker部署应用区别(MySQL篇)

张无忌

MySQL Docker 运维

海量并发场景下的缓存架构设计

海量并发场景下的缓存架构设计

Windows分享,Windows 8中崭新的数据交互方式-InfoQ