BT

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

何为Web Intents及其目前的实现状态

| 作者 Abel Avram 关注 7 他的粉丝 ,译者 张龙 关注 12 他的粉丝 发布于 2012年5月22日. 估计阅读时间: 4 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

本文概要介绍了何为Web Intents,为何说Web Intents是有用的。Google在Chrome 19中启用了Web Intents,其在Safari上的实现是通过WebKit达成的,同时Mozilla也正在Web Intents上发力。

Web Intents是个相对较新的类似于RPC的机制,可以实现Web应用间的通信,这是通过在客户端(通常但不限于是网页)与服务(如网页、扩展API、插件、OS处理器等,知道如何处理与加工各自的数据)之间传递数据并返回结果来实现的。整个过程是由User Agent(通常是浏览器)来处理的,它让用户决定由哪个服务来执行与Intent相关的动作。Web Intents类似于Android Intents,最初是由Google在去年提出的,现已被W3C接受为草案文档,并希望包含在HTML.Next中。

Google成为第一个在Google Chrome中实现了Web Intents的公司,其实验版本已经包含在最近发布的Chrome 19当中。要想使用Intents,客户端需要通过<intent>标签进行声明,指定待执行的action以及需要传递的数据type,如下代码片段所示:

<intent    action="http://webintents.org/share"    type="image/*" />

客户端需要包含进Intent调用代码,对于网页来说其代码如下所示:

var intent = new Intent(      "http://webintents.org/share",      "image/*",      "http://example.com/image.png"  ); window.navigator.startActivity(intent);

当Intent被调用时,User Agent会要求用户从已知的服务列表中选择一个服务,然后向所选的服务传递数据(在该例中就是“image.png”),服务会处理数据并有可能返回一个结果。目前,Intent服务需要通过Chrome Web Store注册为Chrome扩展,但未来会有其他的解决方案出现。W3C草案还提到了Explicit Intents,客户端可以通过它指定想要使用的服务,在使用各自的服务这个问题上,User Agent可以通知用户,也可以不通知。如果Web应用的作者想要使用某种服务,那么该选项就很有用了。

目前,Intents支持如下动作:sharevieweditsavepicksubscribe。如果觉得不够,开发者还可以创建自己的动作。

Web Intents代表了继混搭之后的下一个风潮。相对于仅仅从多个源来聚合数据,Web Intents让属于不同实体的各种服务来进行数据处理成为了可能。可能的用例有:集成第三方搜索结果、编辑图片、登录认证等等。webintents.org网站提供了大量示例,如Twitter发布和短URL等。

由于Google已经将代码提交到了WebKit,我们有理由相信Safari会在未来的版本中包含进Web Intents。Firefox也开始了Intents上的工作,其公开的一个Firefox Bug引起了人们的热议。Mozilla已经决定在Gaia中实现Intents的原型,一旦稳定就会将其移到Gecko中。我们尚不清楚微软在Web Intents上的计划。

站长们不必等到所有主流浏览器都支持Web Intents后才开始行动,他们可以使用JavaScript shim库,一旦浏览器开始支持后,它会自动采用浏览器的实现。

查看英文原文:Web Intents: What They Are and Their Current Implementation Status

评价本文

专业度
风格

您好,朋友!

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

获得来自InfoQ的更多体验。

告诉我们您的想法

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

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

和 android的 intent类 好像... 感觉就是一套思路出来的 by simon wang

和 android的 intent类 好像... 感觉就是一套思路出来的

Re: 和 android的 intent类 好像... 感觉就是一套思路出来的 by 龙 张

是这样的,其实Web Intent就是受Android的Intent的启发而推出的,其理念都是一致的

允许的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通知我

2 讨论

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


找回密码....

Follow

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

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

Like

内容自由定制

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

Notifications

获取更新

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

BT