BT

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

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

| 作者 Faraz Yashar 关注 0 他的粉丝 ,译者 李彬 关注 1 他的粉丝 发布于 2013年1月19日. 估计阅读时间: 6 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

传统上,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);

目前,DeviceProximityEventUserProximityEvent,以及 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)关注我们,并与我们的编辑和其他读者朋友交流。

评价本文

专业度
风格

您好,朋友!

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

获得来自InfoQ的更多体验。

告诉我们您的想法

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

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

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

讨论

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


找回密码....

Follow

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

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

Like

内容自由定制

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

Notifications

获取更新

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

BT