HTML5环境传感器由[Sensor API](https://dvcs.w3.org/hg/dap/raw-file/tip/sensor-api/Overview.html)描述和定义,包含了6种常见的传感器类型:
![](https://box.kancloud.cn/2016-08-09_57a9aa57009a0.jpg)
它们分别代表温度(摄氏度)、气压(千帕)、湿度(百分比)、光线(lux ,勒克司)、声音(分贝)、临近(厘米)。
HTML5传感器目前讨论的比较多的是DeviceOrientationEvent运动传感器和方向传感器,而Sensor API的详细内容在国内很少有相关的文章提及。下面我对其中的光线传感器进行一个简单介绍,让大家先窥HTML5 Sensor API的一貌。
[光线传感器规范](#)还是内部讨论的W3C工作草案,定义了通过了光线传感器测量周围光线水平的方式,包括2个接口,LightLevelEvent提供了简单的光线级别分类,而DeviceLightEvent接口以[光照度lux](http://baike.baidu.com/view/855640.htm)为单位,描述了环境光线的详细信息。
![](https://box.kancloud.cn/2016-08-09_57a9aa5717bb1.jpg)
不同的光照度
**一、DeviceLightEvent接口**
DeviceLightEvent提供了环境光线的精确值,结果以lux(勒克司,为距离一个光强为1cd的光源,在1米处接受的照明强度)为单位。
它包含一个属性和一个事件:
- 属性value - 返回当前环境光线的强度值。
- 事件ondevicelight - 如果光线变化,会触发此事件。
需要注意的是由于检测方法、传感器结构的不同,不同的设备在同一环境下的返回值可能有所差异。
**二、LightLevelEvent接口**
LightLevelEvent接口提供周围环境的光线水平分级,主要包括三个范围的内容:dim-昏暗,normal-正常和bright明亮。其实它相当于一个简单的判断,让开发者可以很方便的区分这三种常见的光线状态。
它也包含一个属性和一个事件:
- 属性value-返回当前环境光线的强度水平,dim、normal或者bright。
- 事件onlightlevel -如果光线水平变化,会触发此事件。
如何区分昏暗、正常和明亮的光线水平呢?规范定义昏暗是指光照度小于50 lux的环境,正常代表50到10000 lux之间,而明亮则是大于10000 lux。
考虑一下,利用光照传感器Web App可以实现的有趣功能包括哪些?例如在页游里可以根据光照度自动变换场景模式、阅读App可以根据光照度自动变换背景色,进入白天或者夜晚模式…可以预见,在不久的将来,利用这些奇妙的传感器属性,Web App的开发者又将实现更多好玩的创意,让我们的生活更加便利和有趣。
![](https://box.kancloud.cn/2016-08-09_57a9aa572bb6b.jpg)
植物大战僵尸的夜间模式
请注意,Sensor API和DeviceLightEvent定义了浏览器的实现形式和开发者的调用形式,但是它们目前仅仅是工作组草案,未来形式和定义有可能随时发生变化。
相关文章:《[对HTML5 Device API相关规范的解惑](http://blog.csdn.net/hfahe/article/details/7338032)》
《[用HTML5实现手机摇一摇的功能](http://blog.csdn.net/hfahe/article/details/7516317)》
《[百度开发者大会:用HTML5新特性开发移动App](http://blog.csdn.net/hfahe/article/details/7388938)》
原创文章,转载请标明出处:[蒋宇捷的专栏](http://blog.csdn.net/hfahe)(http://blog.csdn.net/hfahe)
- 前言
- AutoPager的简单实现
- 利用CSS3特性巧妙实现漂亮的DIV箭头
- IE9在Win7下任务栏新特性简介
- 浏览器九宫格的简单实现
- Raphael js库简介
- 使用CSS3构建Ajax加载动画
- 用CSS3创建动画价格表
- 用CSS3实现浏览器的缩放功能
- 用纯CSS3实现QQ LOGO
- 用CSS3创建旋转载入器
- 使用Javascript开发移动应用程序
- 用HTML5创建超酷图像灰度渐变效果
- 使用CSS3创建文字颜色渐变(CSS3 Text Gradient)
- 仅用CSS创建立体旋转幻灯片
- 如何创建跨浏览器的HTML5表单
- 用CSS3实现动画进度条
- HTML5 Guitar Tab Player
- 奇妙的HTML5 Canvas动画实例
- 谈HTML5和CSS3的国际化支持
- 实现跨浏览器的HTML5占位符
- 前端开发必备工具:WhatFont Bookmarklet-方便的查询网页上的字体
- 使用HTML5和CSS3来创建幻灯片
- HTML5之美
- 如何使用HTML5创建在线精美简历
- 以小见大、由浅入深-谈如何面试Javascript工程师
- 快速入门:HTML5强大的Details元素
- 用CSS3实现图像风格
- HTML5视频字幕与WebVTT
- 用纯CSS3实现Path华丽动画
- 用3个步骤实现响应式网页设计
- 遇见CSS3滤镜
- 关于CSS3滤镜的碎念
- 用纯CSS3绘制萌系漫画人物动态头像
- CSS3新的鼠标样式介绍
- 用HTML5献上爱的3D玫瑰
- 对HTML5 Device API相关规范的解惑
- 如何使用HTML5实现拍照上传应用
- 2012第一季度国外HTML5移动开发趋势
- HTML5新特性:范围样式
- 百度开发者大会-《用HTML5新特性开发移动App》PPT分享
- Chrome 19对于HTML5最新支持的动态:电池状态API,全屏API,震动API,语音API
- 遇见Javascript类型数组(Typed Array)
- 用HTML5 Audio API开发游戏音乐
- 用HTML5实现人脸识别
- 用Javascript实现人脸美容
- Chrome 20对于HTML5最新支持的动态:颜色输入,网络信息API,CSS着色器
- 用HTML5实现手机摇一摇的功能
- 用HTML5实现iPad应用无限平滑滚动
- 用非响应式设计构建跨端Web App
- 了解SVG
- HTML5图像适配介绍
- HTML5安全:内容安全策略(CSP)简介
- HTML5安全:CORS(跨域资源共享)简介
- 用CSS3 Region和3D变换实现书籍翻页效果
- 谈谈移动App的思维误区
- Chrome新特性:文件夹拖拽支持
- 《关注HTML5安全》
- HTML5安全风险详析之一:CORS攻击
- HTML5安全风险详析之二:Web Storage攻击
- HTML5图像适配最新进展:响应式图片规范草案
- HTML5移动Web App相关标准状态及路线图
- HTML5安全风险详析之三:WebSQL攻击
- Chrome引入WebRTC支持视频聊天App
- HTML5安全风险详析之四:Web Worker攻击
- HTML5安全风险详析之五:劫持攻击
- HTML5安全风险详析之六:API攻击
- HTML5安全攻防详析之七:新标签攻击
- 在iOS Safari中播放离线音频
- 使用WebRTC实现远程屏幕共享
- Firefox、Android、iOS遇见WebRTC
- HTML5光线传感器简介
- HTML5安全攻防详析之八:Web Socket攻击
- HTML5安全攻防详析之完结篇:HTML5对安全的改进
- 激动人心!在网页上通过语音输入文字 - HTML5 Web Speech API介绍
- Web滚动性能优化实战
- 用CSS3设计响应式导航菜单
- 用HTML5构建高性能视差网站
- 漫谈@supports与CSS3条件规则
- HTML5下载属性简介
- 如何开发优秀的HTML5游戏?-迪斯尼《寻找奥兹之路》游戏技术详解(一)
- 如何开发优秀的HTML5游戏?-迪斯尼《寻找奥兹之路》游戏技术详解(二)
- 趋势:Chrome为打包应用提供强大新特性
- 从HTML5移动应用现状谈发展趋势
- 基于HTML5的Web跨设备超声波通信方案