接近传感器 API

使用 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 上发表博客文章,并且热爱旅行和结识新朋友。

更多 Robert Nyman [荣誉编辑] 的文章…


7 条评论

  1. 保持连接

    我们可以希望使用此 API 实现网络共享或 WiFi 共享(在 Firefox OS 中)吗?

    2013 年 6 月 9 日 04:28

    1. Robert Nyman [编辑]

      网络共享/WiFi 共享作为 Firefox OS 的一部分提供,与该 API 无关。

      2013 年 6 月 10 日 01:40

  2. Mathew Porter

    这对于共享基于 Web 的内容来说非常棒,有空的时候我得亲自动手试试。

    2013 年 6 月 13 日 09:57

    1. Robert Nyman [编辑]

      听起来不错!

      2013 年 6 月 13 日 13:34

  3. Vergorio

    太棒了!潜力巨大。如果距离可以扩展到几米,这对于医疗、安全和交通应用程序来说也可能非常棒。也许将来可以实现。

    2013 年 6 月 20 日 13:01

    1. Caspy7

      有趣。您认为这将如何用于医疗、安全和交通应用程序?

      我不知道这些传感器的技术限制,但我相当肯定它们的范围主要取决于传感器本身(硬件)。我怀疑软件级别的任何更改都将能够增加范围。

      2013 年 7 月 3 日 12:28

      1. Robert Nyman [编辑]

        是的,我相信这一切都归结于传感器。

        2013 年 7 月 3 日 14:11

本文的评论已关闭。