BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Windows 8.1中的联系人和约会合约

| 作者 Jonathan Allen 关注 530 他的粉丝 ,译者 康锦龙 关注 0 他的粉丝 发布于 2013年7月9日. 估计阅读时间: 5 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

Windows 8.1将更大程度地允许应用访问人脉(People)和日历的数据信息。该功能通过合约(Contract)来实现,通过这种方式,应用程序可以发送或者使用其它应用程序或操作系统的消息。在Windows 8中,像共享(发送、接收)和搜索(仅接收)合约这样的例子最常被引用到。应当指出的是,合约是操作系统的概念,应用程序无法自己创建合约。

第一版的人脉合约(People Contract)所实现的功能,是在应用程序中显示Windows绘制的联系人卡片。由于UI是由Windows掌控的,所以在各个应用程序中,用户的体验是一致的。用户可以从联系人卡片来启动其它操作,如发送电子邮件或拨打电话等。

正如上图所展示的一样,联系人卡片被集成进应用中,而不是像设置、共享合约那样作为一个单独的边栏窗口。

当调用ShowContactCard方法时,需要指定应用程序中不显示联系人卡片的地方(即排除区域)。在上例中,被排除的区域是邮件收件人列表。除了此方法外,还有一个称为ShowDelayLoadedContactCard的替换版本。

应用可以通过调用ShowDelayLoadedContactCard方法快速显示卡片的部分内容,而其余的详细信息要等待查找操作完成后一次性进行填充,但查找操作可能会十分漫长。

联系人管理的基本变化
在Windows 8中,人脉(People)应用直接对联系人列表进行管理。而在Windows 8.1中,取而代之的是集中化的“Windows联系人存储”,任何应用都可以查询联系人信息。这些查询可以使用姓名、电子邮件地址以及电话号码作为组合查询条件。

当查询失败时,系统会根据应用的查询条件构建出一个虚拟联系人,并显示该虚拟联系人的卡片。用户可以选择将虚拟联系人信息转化为真实联系人,并保存在通讯簿中。

由于实际上是Windows在管理UI,因此应用虽然能够展示联系人卡片,却无法访问联系人存储中的信息。

操作类型

目前Windows 8.1计划支持以下操作类型:

  • 发送邮件
  • 通话
  • 发送消息
  • 视频通话
  • 定位地址
  • 发布

为了避免使UI布局混乱,联系人卡片只会显示前三个有效操作,操作的有效性是根据联系人数据决定的。如果可用操作超过三个,那么发送邮件,通话和发送消息将具有优先权。

接收联系人操作

当用户在联系人卡片上点击按钮时,相关的应用程序以并列模式(Side-By-Side Mode)打开。该应用程序可接收的操作类型和联系人对象一样。

关于如何将应用注册为联系人操作处理程序的具体细节尚不清楚。但我们了解到,其方式和文件、协议处理程序的注册方式一样,用户需要在应用程序清单(Manifest)上进行注册,并且各类操作需要分别注册。

对于已经注册mailto协议的应用程序,系统将会自动帮它们注册邮件操作。

在日历中添加事件

在Windows 8.1中,应用程序可以在用户日历中添加事件。应用程序需要先创建一个约会对象,然后触发操作系统显示添加事件对话框。用户所选的日历应用程序负责绘制对话框并且保存记录。这一步需要用户确认,如未经用户明确同意,不能添加日历条目。

如果用户同意保存条目,应用程序将会得到返回的唯一标识符。此标识符可用于以后更新事件。

备用日历

其它应用也能够将自身注册为日历供用户选择。但有关如何实现的细节尚未公布。

局限 http://channel9.msdn.com/Events/Build/2013/ 由此看来,应用程序不会被授予全部的可编程权限来访问用户的联系人以及约会信息。此举可以防止开发人员编写恶意程序来窃取私人信息,但这种方式的弊端是阻止了开发人员在应用程序中创建很多有用的类。

如需了解更多信息,各位读者可以观看Build 2013大会中名为构建集成人脉和日历事件的应用的会议或是查阅MSDN文档:

查看英文原文:Contact and Appointment Contracts in Windows 8.1

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT