前言
在前端开发中,我们经常需要与设备进行通信。Windows 操作系统中提供了一个接近传感器 API,让我们可以使用设备的接近传感器来检测设备之间的接近程度。npm 包 windows.networking.proximity 就是使用这个 API 实现了设备间的通信。
本文旨在帮助前端开发者了解 npm 包 windows.networking.proximity 的使用方法和注意事项,以及如何从中获得启示和指导的价值。
安装
使用 npm 包管理工具,进入项目目录,输入以下指令进行安装:
npm install windows.networking.proximity
使用方法
在使用 npm 包 windows.networking.proximity 之前,需要先了解接近传感器在 Windows 操作系统中的 API。接着我们在代码中引入 windows.networking.proximity 中的 ProximityDevice 对象,这个对象包含了设备搜索、连接和断开连接等操作的封装。
搜索设备
我们使用 ProximityDevice 对象的 peerFinder.findAllPeersAsync()
方法来搜索当前系统中的设备:
const proximity = require('windows.networking.proximity'); const proximityDevice = proximity.ProximityDevice.getDefault(); proximityDevice.peerFinder.findAllPeersAsync().done((peerList) => { console.log(peerList); });
搜索到的设备列表信息将会通过 done
回调函数返回。我们可以通过打印出 peerList
来查看搜索到的设备信息。
连接设备
连接设备需要使用 peerFinder.createPeerConnectiionAsync() 方法,该方法接受一个参数,即我们需要连接的设备的 ID。在搜索设备时,我们可以获取到设备的 ID。
const proximity = require('windows.networking.proximity'); const proximityDevice = proximity.ProximityDevice.getDefault(); proximityDevice.peerFinder.findAllPeersAsync().done((peerList) => { let peer = peerList[0]; proximityDevice.connectAsync(peer, {}).done((peerInformation) => { console.log(peerInformation); }); });
peer 值是设备列表中的第一个设备。连接设备需要一定的时间,因此我们可以通过 done
回调函数获取到连接结果,并进行相应的处理。
传输数据
设备连接成功后,我们就可以开始传输数据了。我们可以使用 ProximityStreamSocket 对象的 write 方法将数据写入到设备的输出流:
-- -------------------- ---- ------- ----- --------- - ---------------------------------------- ----- --------------- - --------------------------------------- -------------------------------------------------------------- -- - --- ---- - ------------ ---------------------------------- -------------------------- -- - --- ------ - ----------------------- --- --------------- - -------------------------------------------------- ---------------------------- --------- --- ---
在数据传输过程中,我们不仅需要向设备写入数据,还需要通过监听 inputReceived 事件来接收设备发送过来的数据:
-- -------------------- ---- ------- ----- --------- - ---------------------------------------- ----- --------------- - --------------------------------------- -------------------------------------------------------------- -- - --- ---- - ------------ ---------------------------------- -------------------------- -- - --- ------ - ----------------------- --- --------------- - -------------------------------------------------- ------------------------------------------------- ------- -- - --- ------ - ------------------------------ --- ---------- - --------------------------------------------- --- ---- - --------------------------------------------------------- --------------------- ----- - - ------ --- --- ---
inputReceived 事件会在设备向当前设备发送数据时触发,我们可以通过 event.detail.getInputStream() 获取到数据输入流,然后通过 proximity.DataReader 对象进行读取。
注意事项
- 在使用 npm 包 windows.networking.proximity 之前,需要先了解接近传感器在 Windows 操作系统中的 API。
- 设备连接成功后,我们需要注意关闭连接,释放系统资源。
- 在使用 ProximityStreamSocket 写入数据时,需要先将数据转换为字节数组。
- 如果接收到的数据长度超出了设备的接收范围,则会抛出异常。
结语
本文介绍了 npm 包 windows.networking.proximity 的使用方法以及注意事项。希望本文对前端开发者在设备间通信方面提供了一定的指导和帮助。在使用本文中介绍的方法时,也需要对设备接近传感器 API 的规则和限制有足够的了解和认识。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6006710e8dd3466f61ffe1a3