使用 Firefox OS 和 Web API 将 Web 带到移动平台的一大优势在于能够更深入地连接物理世界。其中一部分就是接近传感器 API,它也是一个 W3C 工作草案 - 接近事件。
它是做什么的
该 API 通过访问接近传感器来检测设备与任何其他物理物体之间的距离。有两种使用接近传感器的方法
- 设备接近
- 用户接近
来自规范
DeviceProximityEvent
接口为 Web 开发人员提供有关托管设备与附近物体之间距离的信息。
UserProximityEvent
接口为 Web 开发人员提供用户代理和平台特定的近似值,表示托管设备已检测到附近的物体。
使用方法
使用接近传感器非常简单,只需添加几个事件处理程序,具体取决于您想要做什么。deviceproximity
事件使用公制系统,您将获得以厘米为单位的距离(这些示例假定您有一个现有的 proximityDisplay 元素来显示值)。您还可以检查设备中传感器的最小和最大距离支持。
window.ondeviceproximity = function (event) {
// Check proximity, in centimeters
var prox = "Proximity: " + event.value + " cm
";
prox += "Min value supported: " + event.min + " cm
";
prox += "Max value supported: " + event.max + " cm";
proximityDisplay.innerHTML = prox;
};
需要注意的是,传感器目前可以返回的值非常小,范围从 0 到 5 或 10 厘米。通常,我认为用例是检测用户是否将设备举到耳边,但我个人认为,如果它支持,比如说,一米的距离,那会更令人兴奋!
对于 userproximity
,您获得的值是 event
对象上的 near
属性,它是一个布尔值,表示用户是否靠近传感器。
window.onuserproximity = function (event) {
// Check user proximity
var userProx = "User proximity - near: " + event.near + "
";
userProximityDisplay.innerHTML = userProx;
};
我还将设备和接近传感器代码以及测试添加到 Firefox OS 样板应用程序 中,因此请随时获取最新的代码并试用它。
Web 浏览器支持
接近传感器 API 当前支持以下浏览器:
结论
使用接近传感器是跨越软件和真实物理环境之间鸿沟的另一个例子,并展示了 Web 的强大功能。我们希望看到您基于此创建许多有趣的东西!
关于 Robert Nyman [荣誉编辑]
Mozilla Hacks 的技术布道师和编辑。发表关于 HTML5、JavaScript 和开放 Web 的演讲和博客文章。Robert 是 HTML5 和开放 Web 的坚定支持者,自 1999 年以来一直从事 Web 前端开发工作 - 在瑞典和纽约市。他还定期在 http://robertnyman.com 上发表博客文章,并且热爱旅行和结识新朋友。
7 条评论