写点什么

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

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

    阅读完需:约 5 分钟

AI 大模型超全落地场景&金融应用实践,8 月 16 - 19 日 FCon x AICon 大会联诀来袭、干货翻倍!

传统上,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:19895
用户头像

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

关注

评论

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

音频变速变调原理及soundtouch代码分析

floer rivor

音视频

高校软件IT专业大学生课外培训调查问卷

穿过生命散发芬芳

行业分析能力考核

A “word-wrap” functionality(一个字符串包裹函数)

HoneyMoose

InfoQ & 声网Agora 技术开放日邀请函

Jessie

音视频 声网

科技赋能 博睿数据引领教育行业走入“服务可达”时代

博睿数据

在线教育 博睿数据 服务可达

引入:从云计算到Serverless

刘宇

聆听极致 ——声网 Agora

cv君

算法 音视频 科技 声网 引航计划

技术探索系列 - 轻松带你掌握 JMM(1)

洛神灬殇

Java JVM JMM 并发 5月日更

fastadmin+xunsearch题库系统搭建教程

一颗小树

php thinkphp fastadmin xunsearch 题库系统

聪明人的训练(三十)

Changing Lin

4月日更

SpringCloud-技术专题-Feign组件基本使用(2)

洛神灬殇

springmvc SpringCloud Hystrix Fegin

又一个免费良心的下载站,答应我:别再下到流氓软件了。

彭宏豪95

ios 效率 工具 下载 4月日更

了解代理服务器

进击的梦清

nginx Linux 运维 代理原理

手机屏幕投屏到桌面的离线方案

黄敏

云原生除了K8S、微服务,还有...?

浪潮云

云计算

5月日更,InfoQ 高定T-恤,达标来领~

InfoQ写作社区官方

5月日更 热门活动

Serverless的定义

刘宇

当代软件IT大学生的技术学习之路

Nydia

签约计划

2021年十大突破性技术

石云升

读书笔记 5月日更

已跪!Java全能笔记爆火,Java教程/Java包/Eclipse安装指南全有

牛哄哄的java大师

Java

对于即将工作的IT大学生,该如何变强?

cv君

程序人生 IT 科技 问卷 有意义

面试:某云面试题目整理

程序员架构进阶

Java 面试 自我提升 28天写作 4月日更

本文标题不能描述本文内容

小天同学

读书 哲学 读后感 4月日更

北美亚特兰大一金融服务公司面试总结

HoneyMoose

网络攻防学习笔记Day1

穿过生命散发芬芳

5月日更 网络攻防

​太厉害了,终于有人把Spring条件注解讲明白了,送你上岸!

飞飞JAva

spring

【得物技术】网络优化——域名解析原理&实践

得物技术

网络 域名解析 域名 得物技术 实践

将本地文件/文章上传到 GitHub 的流程

彭宏豪95

git GitHub 效率 编程

【LeetCode】员工的重要性Java题解

Albert

算法 LeetCode 5月日更

IT 专业大学生被培训机构“渗透”情况调查

梦想橡皮擦

签约计划

万字长文讲述我是怎样保送清华的|寒门学子的奋斗史(四)

程序猿石头

程序员 码农 逆袭 大学总结 读书总结

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