如何用WebHID API接入人机接口设备?

WebHID API可在支持的浏览器中实现网页与HID设备的双向通信。首先需在HTTPS环境下检查浏览器兼容性:if (‘hid’ in navigator)。通过navigator.hid.requestDevice()请求用户授权并选择设备,可使用vendorId、productId等过滤。连接后调用device.open()并监听inputreport事件接收数据,数据为DataView格式,需解析为Uint8Array处理。如设备支持,可用sendReport发送输出报告控制硬件。目前Chrome 89+支持,核心难点在于理解设备特定的数据协议。

如何用webhid api接入人机接口设备?

WebHID API 让网页可以直接与键盘、鼠标、游戏手柄等 HID 设备通信,适用于需要精细控制硬件的场景。要使用 WebHID 接入设备,需通过浏览器请求用户授权并建立连接。

启用与检测 WebHID 支持

目前 WebHID 主要在 Chrome 89+ 和部分基于 Chromium 的浏览器中支持。使用前先检查浏览器是否支持:

if ('hid' in navigator) {  console.log('WebHID 可用');} else {  console.log('当前浏览器不支持 WebHID');}

注意:页面必须运行在 HTTPS 环境下(或本地开发时的 localhost),否则 API 不可用。

请求连接 HID 设备

调用 navigator.hid.requestDevice() 弹出设备选择框,用户可从中授权一个或多个设备:

const devices = await navigator.hid.requestDevice({  filters: [{ vendorId: 0x1234, productId: 0x5678 }] // 按厂商/产品 ID 过滤});

如果不指定 filters,用户可以看到所有可识别的 HID 设备。常见字段还包括 usagePageusage,用于按功能筛选(如游戏控制器、条码扫描器)。

监听输入数据

设备连接后,需打开会话并监听输入报告:

for (const device of devices) {  await device.open();  device.addEventListener('inputreport', (event) => {    const { data, reportId } = event;    const bytes = new Uint8Array(data.buffer);    console.log(`收到数据,Report ID: ${reportId}`, bytes);  });}

inputreport 事件会在设备发送数据时触发,data 是一个 DataView 对象,需根据设备协议解析原始字节

发送输出报告(可选)

若设备支持写入操作(如控制 LED 或震动反馈),可通过 sendReport 发送数据:

await device.sendReport(reportId, new Uint8Array([0x01, 0x02, 0x03]));

reportId 和数据格式需参考设备文档,错误的格式可能导致无响应或设备异常。

基本上就这些。只要设备被正确识别且用户授权,WebHID 能实现稳定的双向通信。难点通常在于理解设备的数据格式和用途定义。建议配合官方 SDK 或抓包工具分析原始数据流。

以上就是如何用WebHID API接入人机接口设备?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1523755.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
前端自动化测试中如何处理异步UI更新?
上一篇 2025年12月20日 16:11:22
解决 TypeScript 中类型守卫与泛型条件返回类型的类型断言实践
下一篇 2025年12月20日 16:11:39

相关推荐

  • 上海欢乐谷停车场收费指南

    上海欢乐谷停车场收费指南上海欢乐谷停车场收费指南上海欢乐谷停车场收费指南上海欢乐谷停车场收费指南

    1、 电脑开启ie浏览器,见图中红框标注处。 2、 打开百度,点击搜索框,中红色框所示位置。 3、 输入上海欢乐谷,见红色文本框所示。 4、 进入欢乐谷后,按红色箭头方向向下拉动。 5、 查看红色标注区域,获取服务设施及停车场详情。 6、 上海欢乐谷停车场收费详情已查。 以上就是上海欢乐谷停车场收费…

    2026年9月2日 用户投稿
    000
  • 后台管理页面跳转:如何优雅地保留搜索表单参数?

    后台管理系统页面跳转时如何优雅地保留搜索表单参数?本文探讨几种优于直接拼接URL参数的解决方案,提升用户体验和代码可维护性。 在后台管理系统中,数据展示页(A页)与数据新增/编辑页(B页)间的跳转常常需要保留A页的搜索条件。直接在URL中拼接参数虽然简单,但可维护性和可读性差,尤其在多个跳转场景下。…

    2026年9月2日
    000
  • 使用 Composer 轻松解决 Symfony 项目中的分页问题

    可以通过以下地址学习 composer:学习地址 在开发过程中,我发现手动实现分页功能不仅繁琐,还容易出错。特别是当数据量大时,性能问题和用户体验问题接踵而至。我尝试过一些现成的分页库,但它们要么功能有限,要么与 Symfony 的集成不够友好。 幸运的是,我找到了 ruwork/paginator…

    用户投稿 2026年9月2日
    100
  • uc浏览器怎么免费解压 你用UC浏览器免费解压

    uc浏览器怎么免费解压 你用UC浏览器免费解压uc浏览器怎么免费解压 你用UC浏览器免费解压uc浏览器怎么免费解压 你用UC浏览器免费解压uc浏览器怎么免费解压 你用UC浏览器免费解压

    我们使用uc浏览器下载文件时,可能会遇到一些压缩文件无法直接在手机上打开的情况。这时候应该如何解压这些压缩文件呢?以下是通过uc浏览器免费解压压缩文件的操作步骤。 第一步:启动UC浏览器,在主界面找到并点击“下载/文件”图标。 第二步:进入下载页面后,定位到你需要解压的压缩包,随后点击右上角的“&#…

    2026年9月2日 用户投稿
    100
  • win10怎么设置软件开机后自动启动_Win10软件开机自启动管理方法

    可通过任务管理器、设置应用、启动文件夹或注册表设置Win10开机自启程序,分别适用于不同场景与用户需求。 如果您希望某些常用软件在每次启动Windows 10后自动运行,以便快速进入工作或娱乐状态,可以通过系统内置的管理工具或特定文件夹来实现对开机自启动软件的控制。以下是几种有效的设置方法: 本文运…

    2026年9月2日
    000
  • 术业有专攻——AI系统主控CPU英特尔至强6新品处理器浅析

    一、至强6与nvidiagpu协同的硬件基础 在AI异构计算架构中,英特尔至强6处理器作为主控CPU可以与NVIDIA新GPU很好地协同。根据英伟达官网信息,目前其DGXB300系统选择至强6776P作为主控CPU,采用双路配置,通过UPI总线实现CPU间互连。这8个GPU通过NVLink高速互连,…

    2026年9月2日
    100
  • 传苹果与阿里巴巴合作 为中国iPhone引入人工智能功能

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 消息人士透露,苹果公司正与阿里巴巴展开合作,为中国地区的iPhone用户带来全新的人工智能功能。 据报道,苹果公司此前曾与百度合作,但由于百度在模型开发方面未能达到预期,合作最终未能成功。此后,…

    2026年9月2日
    100
  • 前后端交互JSON映射失败:如何解决前端JSON数据与后端Java对象属性不匹配问题?

    前端与后端JSON数据映射问题及解决方案 前后端交互过程中,JSON数据与Java对象属性不匹配是常见错误。本文将分析此类问题,并提供有效的解决和预防方法。 问题示例 假设后端接口如下: 立即学习“Java免费学习笔记(深入)”; public AjaxResult taskPath(@Reques…

    2026年9月2日
    000
  • edge app怎么清理干净 Edge app删除历史记录方法

    edge app怎么清理干净 Edge app删除历史记录方法edge app怎么清理干净 Edge app删除历史记录方法edge app怎么清理干净 Edge app删除历史记录方法edge app怎么清理干净 Edge app删除历史记录方法

    打开edge浏览器,点击底部的【菜单】。 在弹出的窗口中,选择并点击【历史记录】。 进入页面后,点击右上角的【删除】按钮。 随后跳转的界面中,点击【立即清除】即可完成操作。 以上就是edge app怎么清理干净 Edge app删除历史记录方法的详细内容,更多请关注创想鸟其它相关文章!

    2026年9月2日 用户投稿
    100
  • 使用 Laravel Config Writer 库简化配置文件管理

    在 laravel 项目开发中,配置文件的动态管理一直是个挑战。手动修改配置文件不仅容易出错,还会打乱文件的结构和注释,导致维护困难。为了解决这个问题,我尝试了多种方法,最终找到了 shah-newaz/laravel-config-writer 这个库。 shah-newaz/laravel-co…

    用户投稿 2026年9月2日
    300
  • WPS文字翻译Word文档技巧

    WPS文字翻译Word文档技巧WPS文字翻译Word文档技巧WPS文字翻译Word文档技巧WPS文字翻译Word文档技巧

    打开文本编辑程序,创建一个空白文件并输入英文内容,接下来将逐步展示如何将这段英文精确地翻译成中文。 1、首次使用软件自带的翻译功能时,需先选中需要翻译的文本内容,然后点击鼠标右键,即可出现操作菜单。 2、在弹出的菜单中选择“翻译”选项,便可启动翻译工具。如果是第一次使用,需要手动进行设置,该工具无法…

    2026年9月2日 用户投稿
    100
  • win10系统C盘满了怎么清理_win10系统C盘清理方法详解

    首先使用磁盘清理工具和存储感知释放空间,再手动清理Temp文件夹,接着卸载或迁移大型应用,并通过调整虚拟内存及禁用休眠文件减少C盘占用。 如果您发现Windows 10系统的C盘空间不足,系统运行变得缓慢或无法安装更新,可能是由于临时文件、系统缓存或大型程序占用了大量空间。以下是解决此问题的多种方法…

    2026年9月2日
    100
  • 悟空浏览器怎么下载安装在电脑里 电脑端悟空浏览器下载安装详细教程分享

    悟空浏览器没有官方电脑版,只能通过安卓模拟器在电脑上使用,具体方法是先安装夜神、雷电或蓝叠等安卓模拟器,再在模拟器中下载悟空浏览器app并运行;其未推出电脑版的原因在于产品定位聚焦移动端,旨在集中资源优化手机端用户体验,避免在桌面端与chrome、edge等成熟浏览器直接竞争,从而实现更高的投入产出…

    2026年9月2日
    300
  • 如何高效地对后台返回数据进行二次排序,实现前端相邻数据展示?

    前端数据排序:实现相邻数据展示 前端开发中,经常需要对后台返回的数据进行二次排序,以满足特定的展示需求。本文将介绍如何处理异步获取的数据,并按照appeal_type和detail_appeal_type字段进行排序,确保相同类型的数据相邻显示。 问题:后台返回的JSON数据已按staff字段排序,…

    2026年9月2日
    100
  • 首次!突破世纪难题 我国成功研制出新型芯片:算力达顶级GPU的1000倍以上

    10月14日,据《科技日报》报道,我国科研团队成功研发出一款新型芯片,其算力可超越当前顶级gpu千倍以上,攻克了长期困扰模拟计算领域的世纪难题。 此次成果由北京大学人工智能研究院孙仲研究员团队联合集成电路学院研究团队共同完成,成功研制出基于阻变存储器的高精度、可扩展模拟矩阵计算芯片,首次构建出在计算…

    2026年9月2日
    500
  • 如何使用 Composer 简化支付系统集成:Dagpay PHP 客户端的实际应用

    可以通过一下地址学习composer:学习地址 在开发一个电子商务平台时,支付系统的集成一直是开发过程中一个关键但复杂的环节。尤其是当你需要处理不同货币和支付方式时,问题会变得更加棘手。我曾经尝试过手动集成支付API,但这不仅耗时,而且容易出错。最终,我找到了 Dagpay 的 PHP 客户端,这是…

    用户投稿 2026年9月2日
    100
  • Hotmail登录方法指南

    Hotmail登录方法指南Hotmail登录方法指南Hotmail登录方法指南Hotmail登录方法指南

    打开浏览器,在搜索栏中输入“Hotmail邮箱”,然后点击出现的第一个链接进入官网页面,注意确认网址正确,避免误入仿冒网站。 进入官方网站后,选择“创建免费账户”选项,开始注册新的Hotmail邮箱账号。 按照页面提示填写所需的个人信息,包括希望使用的邮箱名称,完成后点击“下一步”继续。 设置登录密…

    2026年9月2日 用户投稿
    100
  • 山东大学集成电路学院获批2项山东省本科教学改革研究项目

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 山东大学集成电路学院在2024年度山东省本科教学改革研究项目评选中取得佳绩,成功获得1项重点项目和1项面上项目立项资助,标志着学院在省级教改项目领域取得了新的突破。 此次立项,是学院积极响应《关…

    2026年9月2日
    100
  • archiveofownour官方链接更新_秒开archiveofownour最新页面

    Archive of Our Own作为一个由爱好者为爱好者们建立和维护的非商业性、非盈利性的同人作品托管平台,凭借其开放、包容的创作环境与强大的功能设计,吸引了全球无数创作者和读者的目光。这里是灵感碰撞的家园,是无数精彩故事的诞生地。平台致力于保护和存档各类粉丝作品,从同人小说到同人画作,为用户提…

    2026年9月2日
    100
  • win8输入法不见了怎么调出来_win8输入法图标丢失恢复方法

    输入法图标消失可通过五步恢复:1. 展开通知区域显示隐藏图标并设为始终显示;2. 控制面板中启用桌面语言栏并停靠任务栏;3. 启动Text Input Framework等相关服务;4. 删除并重新添加语言重置输入法;5. 检查msconfig中Ctfmon.exe启动项确保加载。 如果您在使用Wi…

    2026年9月2日
    200

发表回复

登录后才能评论
关注微信