首页 > web前端 > js教程 > 引入接近API

引入接近API

Lisa Kudrow
发布: 2025-02-21 12:23:10
原创
777 人浏览过

Introducing the Proximity API

核心要点

  • 近距离 API 利用近距离传感器测量设备与物体之间的距离,提供距离信息。该 API 并非传感器 API 的一部分,而是独立的 API。
  • 该 API 应用广泛,例如手机在靠近耳朵时自动关闭屏幕的功能,以及物体(例如手)靠近设备时暂停音乐播放器。
  • 近距离 API 定义了两个事件:deviceproximity 提供设备与附近物体之间距离的信息;userproximity 指定设备是否检测到附近物体。可以监听并响应这些事件。
  • 目前,近距离 API 的支持度较低,仅 Firefox(桌面版和移动版,15 版及以上)支持,尽管它已达到 W3C 候选推荐标准。

移动设备已成为生活中不可或缺的一部分,适度使用它们能帮助我们完成许多日常任务,例如查询公交信息、查找最近的地铁站或意大利餐厅等等。

移动设备也为 Web 开发者开辟了新的天地。为了满足移动设备的使用需求,一系列专门为其设计的 API 应运而生。

在过去的几个月里,我已经向大家介绍了一些 API,例如 Web Notifications API 和 Web Speech API。本文将介绍一个简单但实用的 API:近距离 API。

简介

近距离 API 定义了事件,这些事件提供关于设备与物体之间距离的信息,这些信息由近距离传感器测量得出。该 API 最初是传感器 API 的一部分,后来被拆分出来成为一个独立的 API。近距离 API 的规范被认为是稳定的,因为它在 2013 年 10 月 1 日达到了 W3C 候选推荐标准。

如果您使用过智能手机,那么您一定已经体验过这个 API 的功能。

举个例子:想想您上次打电话的过程。您解锁智能手机,输入要拨打的号码,然后点击“呼叫”按钮。完成之后,您将手机靠近耳朵,这时神奇的事情发生了,屏幕关闭了。

许多智能手机都具备此功能以节省电池电量,而这项功能正是由近距离 API 提供支持的。当您将移动设备靠近耳朵时,近距离传感器会触发一个事件,该事件会被您的智能手机监听,从而关闭屏幕。

在 Web 上,我们还有其他有趣的用例。您是否曾在开车时使用 Web 服务收听音乐,然后需要暂停播放?

手动暂停播放器有多麻烦?答案一定是“非常麻烦!”。借助此 API,Web 开发者现在可以添加一个功能,如果物体(在本例中为手)靠近设备,播放器将暂停。

现在我们知道了近距离 API 是什么以及它的用例,我们可以深入了解它公开的事件。

事件

近距离 API 定义了两个事件,我们可以根据物体的接近程度来监听和响应这两个事件。第一个事件是 deviceproximity,它提供有关主机设备与附近物体之间距离的信息。第二个事件是 userproximity,它指定设备是否检测到附近物体。这两个事件都在 window 对象上触发,因此要监听它们,我们需要向其附加一个处理程序。

下面是一个如何附加 deviceproximity 事件处理程序的示例:

window.addEventListener('deviceproximity', function(event) {
   console.log('An object is ' + event.value + ' centimeters far away');
});
登录后复制

附加的处理程序接收一个对象作为其第一个参数,其中包含我们需要的信息。deviceproximity 事件传递的对象提供三个属性:valueminmaxvalue 是一个数字,表示设备与物体之间的距离(以厘米为单位)。minmax 属性描述传感器可以检测到的最小和最大距离(以厘米为单位)。userproximity 事件传递的对象公开了 near 属性。这是一个布尔值,它指定物体是否足够靠近设备(true)或不是(false)。在这种情况下,“足够近”意味着物体在特定设备的可检测范围内。

浏览器兼容性

目前,近距离 API 的支持度非常低。唯一支持它的浏览器是 Firefox(桌面版和移动版,从 15 版开始)。考虑到它已经达到了 W3C 候选推荐标准,这一点令人惊讶,但目前就是这样。

由于此 API 仅在 Firefox 中实现,因此了解如何测试其支持至关重要。我们可以使用一种众所周知的方法来实现,您在处理其他 API 时可能已经遇到过这种方法。此方法如下所示:

if ('ondeviceproximity' in window) {
   // API supported. Don't get too close, I can feel you
} else {
   // API not supported
}
登录后复制

如上所示,我们可以测试 userproximity 事件的支持情况。此时,我们知道了近距离 API 是什么以及它公开的事件。为了完成我们的旅程,我们将开发一个简单的演示来查看它的实际效果。

(后续内容,例如Demo和结论部分,由于篇幅限制,建议您参考原文进行阅读和理解。 我已对原文进行了精简和改写,保留了核心信息和图片。)

以上是引入接近API的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板