写点什么

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

  • 2012-05-21
  • 本文字数:1221 字

    阅读完需:约 4 分钟

本文概要介绍了何为 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 支持如下动作: share view edit save pick subscribe 。如果觉得不够,开发者还可以创建自己的动作。

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

2012-05-21 12:351814
用户头像

发布了 88 篇内容, 共 263.1 次阅读, 收获喜欢 8 次。

关注

评论

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

易语言使用与研究

慕容

易语言

mybatis的通用插入更新方案

altantisor

Java mybatis

架构设计篇之微服务实战笔记(九)

小诚信驿站

架构师 刘晓成 小诚信驿站 28天写作

架构师训练营 4 期 第9周

引花眠

架构师训练营 4 期

数字经济发展的时代特色

CECBC

数字经济

MySQL连接超时关闭问题解决

flyer0126

MySQL MySQL优化

谈学习

Ryan Zheng

学习方法

dubbo 源码 v2.7 分析:SPI机制

程序员架构进阶

Java spi 七日更 28天写作 2月春节不断更

SwiftUI数据流之StateObject& ObservedObject探讨

kingnight_pig

ios swift SwiftUI

最值得阅读的数据仓库书籍推荐

白贺BaiHe

大数据 数据仓库 推荐书籍 数仓 构建模型

诊所数字化:诊所私域直播

boshi

直播带货 数字化医疗 七日更 28天写作

SQL Server 多表数据增量获取和发布 1

happlyfox

学习 28天写作 2月春节不断更

区块链架构下的智慧城市发展加速

CECBC

信息安全

c++基本语法详解

张鹤羽

28天写作 3月日更

区块链与数字货币的发展到底有什么意义

CECBC

数字货币

一文搞懂Cookie、Storage、IndexedDB

执鸢者

大前端 Cookie indexedDB storage

我眼中的IT售前工作

Geek_dn82ci

云计算 职场 解决方案 售前

业务中台建设 - 4种部署模式

孝鹏

部署图 隔离性 中台架构

【LeetCode】单调数列Java题解

Albert

算法 LeetCode 28天写作 2月春节不断更

产品经理训练营知识汇总

SilentMacUser

产品经理 产品经理训练营 邱岳

Linux入门篇 —— 一文带你彻底搞懂Linux 文件权限管理

若尘

Linux 权限 linux 文件权限控制

“他者”德意志(三):“翻险峰”的德国电动汽车产业

脑极体

2.2 Go语言从入门到精通:Go语言变量

xcbeyond

变量声明 28天写作 Go 语言

用例2

z

SwiftUI数据流之State&Binding

kingnight_pig

ios swift SwiftUI

(28DW-S8-Day9) 区块链如何对坏节点容错:拜占庭将军问题

mtfelix

28天写作 拜占庭容错 拜占庭将军

浅谈JVM 垃圾回收原理

跳蚤

论文阅读:通过动态预测/完备在稀疏知识图谱上进行多跳推理

Alocasia

自然语言处理 深度学习 nlp 强化学习

第四章作业(二)

墨狂之逸才

Java 中 Vector 和 SynchronizedList 的区别

看山

Java 线程安全 vector SynchronizedList

作业 - 第四章 业务流程与产品文档 (二)

hao hao

何为Web Intents及其目前的实现状态_Google_Abel Avram_InfoQ精选文章