报名参加CloudWeGo黑客松,奖金直推双丰收! 了解详情
写点什么

何为 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:351857
用户头像

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

关注

评论

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

专访浪潮信息:AI 原生时代,浪潮信息引领服务器操作系统创新 全面贡献龙蜥社区

OpenAnolis小助手

开源 操作系统 龙蜥社区 龙蜥操作系统大会

恭喜!龙蜥赛题队获得 2024 大学生操作系统能力大赛 OS 功能挑战赛道三等奖

OpenAnolis小助手

开源 操作系统 龙蜥社区

多协议数据库管理工具:Navicat Premium (Win&Mac) 中文激活版

你的猪会飞吗

Navicat Premium Navicat Premium 16 Navicat Premium 中文版

Spring Boot 整合 MyBatis 的详细步骤(两种方式)

不在线第一只蜗牛

Spring Boot 后端

探索大模型和 Multi-Agent 在运维领域的实践

华为云开发者联盟

AIGC

解决 AI 算法开发和存储难题,华为云 DTSE 助力文华云技术架构升级

华为云开发者联盟

专访AMD:AMD 正式加入龙蜥社区首秀:开源协作与 AI 创新的交汇点

OpenAnolis小助手

开源 AI 操作系统 龙蜥社区

豆包MarsCode IDE 搭建 VitePress 博客并使用 GitHub 部署

豆包MarsCode

人工智能 程序员 AI 开发者 计算机

万界星空科技饮料行业生产管理MES系统解决方案

万界星空科技

工业互联网 mes 万界星空科技 饮料行业 食品饮料

面试官:GROUP BY和DISTINCT有什么区别?

王磊

openGemini 发布人才培养计划,与顶尖的数据库专家并肩成长

华为云开发者联盟

#开源

从源码角度,深度解读 MySQL 优化器的 GROUP BY 优化策略

华为云开发者联盟

数据库

Nexpose 6.6.270 发布下载,新增功能概览

sysin

漏洞扫描 Nexpose

阿里巴巴拍立淘API返回值:商家优化商品信息的参考

技术冰糖葫芦

API Gateway API 接口 API 测试 pinduoduo API

行业报告:仅百度文心智能体平台实现帮开发者赚钱

极客天地

恭喜!龙蜥社区2024年中三大奖项评选名单新鲜出炉

OpenAnolis小助手

开源 操作系统 龙蜥社区

个人GPU云服务器是什么

Ogcloud

gpu 云主机 云服务器 GPU云服务器 云服务器租用

AI 场景下如何构建运维的标准化能力?SOMA 智能运维计划发布 | 2024 龙蜥大会

OpenAnolis小助手

开源 操作系统 系统运维 龙蜥社区 龙蜥社区系统运维联盟

Cloud Kernel SIG 月度动态:ANCK 新增多家厂商硬件新特性支持

OpenAnolis小助手

开源 操作系统 龙蜥社区 龙蜥sig

专访阿里云:AI 时代服务器操作系统洗牌在即,生态合作重构未来

OpenAnolis小助手

开源 AI 操作系统 龙蜥社区 龙蜥操作系统大会

在 React 中模拟输入

yuanyxh

前端 js react context

CDN加速是什么?CDN加速的原理是什么?

Ogcloud

CDN 网络加速 CDN加速 CDN技术 CDN网络加速

inBuilder低代码平台新特性推荐-第二十四期

inBuilder低代码平台

低代码 表单设计

京东云JoyCoder荣获AI4SE“银弹”优秀案例

京东科技开发者

AI 镜像云市场伙伴招募计划发布!服务商闭门会精彩回顾 | 2024 龙蜥大会

OpenAnolis小助手

开源 操作系统 龙蜥社区 AI 镜像

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