写点什么

W3C 在 DOM 中引入“周边亮度”与“邻近”规范

  • 2013-01-18
  • 本文字数:1448 字

    阅读完需:约 5 分钟

传统上,Web 开发被限制在浏览器的范围内,仅能提供文档层面的操作及用户交互处理。W3C 通过引入一系列 API 来努力改变这一现状,使开发者能够与终端及周边外设进行交互。其中两类规范,“邻近事件”与“周边亮度事件”,已经进入草案最后征集意见的阶段。在接下来数月内会进入候选推荐阶段,届时一些实例也会逐渐出现。

通过JavaScript 和HTML5 的事件句柄( event handler ),“邻近事件”与“周边亮度事件”两项规范分别提供了从邻近传感器及光线传感器获取事件的方法。

在当前版本,“邻近事件”规范定义了两个接口:DeviceProximityEvent,向开发者提供关于设备与对象之间距离的信息;UserProximityEvent,向开发者提供有关周边物体侦测的、针对特定浏览器及平台的通知信息。DeviceProximityEvent 提供三项只读属性:

  • min – 最小感应距离,以厘米为单位
  • max – 最大感应距离,以厘米为单位
  • value –物体的邻近程度,以厘米为单位

该对象被传递到一个特殊的回调函数中,即 HTML5 规范所定义的事件句柄(event handler),作为该函数的参数。

复制代码
// Event Handler
deviceProximityHandler = function(event) {
document.writeln('min = ', event.min,
'max = ', event.max,
'value = ', event.value);
// e.g. => min = 0 max = 5 value = 5
document.write('
');
}
// Assigning the Event Handler to a Listener
window.addEventListener('deviceproximity', deviceProximityHandler);

UserProximityEvent 则相对不那么“让人兴奋”,它提供了布尔型属性,用于指示周边的邻近物体:

复制代码
userProximityHandler = function(event) {
document.write('near = ', event.near);
// e.g. => near = true/false
document.write('
');
}
window.addEventListener('userproximity', userProximityHandler);

在当前版本,“周边亮度事件”规范也定义了两个接口。 TheDeviceLightEvent 提供了一个值属性,以勒克斯(lux,照面单位)为单位表达周边亮度等级。LightLevelEvent 将周边亮度划分为“昏暗”(低于 50 勒克斯)、“正常”、“明亮”(高于 10000 勒克斯) 。

复制代码
deviceLightHandler = function(event) {
document.write('value = ', event.value); // e.g. => value = 10/100/1000
document.write('
');
}
window.addEventListener('devicelight', deviceLightHandler);

目前, DeviceProximityEvent UserProximityEvent ,以及 DeviceLightEvent 可在 Firefox 移动版的 Beta 版本(版本号 15 或更高)中使用。支持周边亮度感应的 Windows 版 Firefox Beta 版本也将很快发布。 请注意,草案规范的示例实现很可能在发展的过程中经历重大的改变。例如,Mozilla 的 DeviceLightEvent 实现所提供的对最大、最小亮度的访问,已从当前规范中剔除。

邻近事件”与“周边亮度事件”是当前已被细分出来的传感器API 规范中最成熟的分支,相关规范致力于定义对温度、压强、湿度、噪声等方面的读取。这些尝试覆盖的范围很大,开发者们可以预见,未来的DOM 将能够提供怎样的工具来与用户周边环境交互。开发者们被鼓励积极向这些API 提供反馈,特别是在最后征集意见的阶段。开发者可以通过订阅 Device APIs 工作组的公开邮件列表参与讨论。

查看英文原文 Ambient Light and Proximity Enter the DOM


感谢杨赛对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2013-01-18 05:19969
用户头像

发布了 256 篇内容, 共 73.2 次阅读, 收获喜欢 10 次。

关注

评论

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

华为云软件开发生产线(CodeArts)10月新功能特性

平平无奇爱好科技

WiFi 7 IPQ5312 vs. WiFi 6 IPQ8074-Revolutionizing Mining Networks:—Who’s the King?

wifi6-yiyi

mesh

【0基础转型】1个月成为大数据ETL工程师:轻松月入过万

敏捷调度TASKCTL

数据仓库 Shell ETL TASKCTL #大数据

探索拼多多API:轻松获取商品详情

代码忍者

API 接口 pinduoduo API

2024SACC中国系统架构师大会,NineData联合创始人周振兴受邀参会

NineData

混合云架构 NineData 周振兴 中国系统架构师大会 SACC

亚洲唯一!华为云入选Gartner®云应用平台魔力象限

平平无奇爱好科技

租用 4090 算力云电脑,这些性能指标需关注!

Finovy Cloud

云桌面 显卡 云电脑

关注度上升,交易量直线上涨,Base Season 即将到来?

TechubNews

2024最新Java面试题汇总(附完整答案)

架构师之道

编程 java面试

从“几年”到“秒”:重新思考公钥基础设施(PKI)

安全乐谷

Java 安全 企业管理 密码学 企业安全

TiDB 优化器丨执行计划和 SQL 算子解读最佳实践

TiDB 社区干货传送门

IPQ4019 vs. IPQ8074: Pros and Cons for Building Stable Networks

wallyslilly

IPQ4019 IPQ8074

怎么知道 AI 能帮我写多少代码?

cloud studio AI应用

腾讯 #腾讯云

定档12月20日!星宸科技2024开发者大会暨产品发布会举办在即

科技热闻

访问国外网站的几个方法及其优缺点

Ogcloud

海外网络加速 海外网络专线 跨国网络专线 海外网络访问

内存分配 Allocstall 导致 SQL 抖动的分析

TiDB 社区干货传送门

管理与运维 故障排查/诊断

小红书详情API接口的获取与应用

科普小能手

API Python JSON 小红书API接口 小红书笔记接口 小红书API

怎么实现异地组网?

Ogcloud

组网 企业组网 企业网络 异地组网

In-Depth Analysis: 11BE IPQ5322 vs. 11AX IPQ8072—Who Leads the Future of Industrial Networks?

wifi6-yiyi

WiFi7

多维度解析低代码:从技术架构到插件生态

JeeLowCode低代码平台

低代码平台

仅用5M数据超过 OpenAI?快手最新 Code Embedding 模型 OASIS(绿洲)发布

快手技术

开源 code embedding

【解锁】华为云全栈可观测平台——9月10月新功能特性

平平无奇爱好科技

必看!淘宝商品详情数据接口调用,助力商城上货实战全流程(仅供参考)

tbapi

淘宝商品详情接口 商品上货接口

GreatSQL内存消耗异常排查攻略:从系统到应用层面的深入分析

GreatSQL

解锁电商新境界:1688阿里巴巴API接口深度探索与应用实践

代码忍者

API 接口 pinduoduo API

数据填报遇难题?五步妙法教你轻松攻克

JEECG低代码

数据分析 数据可视化 报表 报表工具 数据填报

YC创投:我们只投这些创业方向,其他方向不看

安全乐谷

创业 投资 社交 出海 YC

从0到1构建完整知识体系!阿里SpringBoot全彩小册开源

了不起的程序猿

Java 微服务 架构师 springboot java面试

HarmonyOS 5.0应用开发——轮播图(Swiper)

高心星

鸿蒙 huawei arkui HarmonyOS NEXT

实战丨证券 HTAP 混合业务场景的难点问题应对

TiDB 社区干货传送门

淘宝天猫API接口:解锁商品详情与关键字搜索的无限可能

代码忍者

API 接口 pinduoduo API

W3C在DOM中引入“周边亮度”与“邻近”规范_JavaScript_Faraz Yashar_InfoQ精选文章