核心要点
- 近距离 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
事件传递的对象提供三个属性:value
、min
和 max
。value
是一个数字,表示设备与物体之间的距离(以厘米为单位)。min
和 max
属性描述传感器可以检测到的最小和最大距离(以厘米为单位)。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中文网其他相关文章!

JavaScript在现实世界中的应用包括前端和后端开发。1)通过构建TODO列表应用展示前端应用,涉及DOM操作和事件处理。2)通过Node.js和Express构建RESTfulAPI展示后端应用。

JavaScript在Web开发中的主要用途包括客户端交互、表单验证和异步通信。1)通过DOM操作实现动态内容更新和用户交互;2)在用户提交数据前进行客户端验证,提高用户体验;3)通过AJAX技术实现与服务器的无刷新通信。

理解JavaScript引擎内部工作原理对开发者重要,因为它能帮助编写更高效的代码并理解性能瓶颈和优化策略。1)引擎的工作流程包括解析、编译和执行三个阶段;2)执行过程中,引擎会进行动态优化,如内联缓存和隐藏类;3)最佳实践包括避免全局变量、优化循环、使用const和let,以及避免过度使用闭包。

Python更适合初学者,学习曲线平缓,语法简洁;JavaScript适合前端开发,学习曲线较陡,语法灵活。1.Python语法直观,适用于数据科学和后端开发。2.JavaScript灵活,广泛用于前端和服务器端编程。

Python和JavaScript在社区、库和资源方面的对比各有优劣。1)Python社区友好,适合初学者,但前端开发资源不如JavaScript丰富。2)Python在数据科学和机器学习库方面强大,JavaScript则在前端开发库和框架上更胜一筹。3)两者的学习资源都丰富,但Python适合从官方文档开始,JavaScript则以MDNWebDocs为佳。选择应基于项目需求和个人兴趣。

从C/C 转向JavaScript需要适应动态类型、垃圾回收和异步编程等特点。1)C/C 是静态类型语言,需手动管理内存,而JavaScript是动态类型,垃圾回收自动处理。2)C/C 需编译成机器码,JavaScript则为解释型语言。3)JavaScript引入闭包、原型链和Promise等概念,增强了灵活性和异步编程能力。

不同JavaScript引擎在解析和执行JavaScript代码时,效果会有所不同,因为每个引擎的实现原理和优化策略各有差异。1.词法分析:将源码转换为词法单元。2.语法分析:生成抽象语法树。3.优化和编译:通过JIT编译器生成机器码。4.执行:运行机器码。V8引擎通过即时编译和隐藏类优化,SpiderMonkey使用类型推断系统,导致在相同代码上的性能表现不同。

JavaScript在现实世界中的应用包括服务器端编程、移动应用开发和物联网控制:1.通过Node.js实现服务器端编程,适用于高并发请求处理。2.通过ReactNative进行移动应用开发,支持跨平台部署。3.通过Johnny-Five库用于物联网设备控制,适用于硬件交互。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

Dreamweaver Mac版
视觉化网页开发工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能