看我如何让手机秒变扫码枪

简介: 为解决无扫码枪问题,作者受到微信小程序“超级扫码枪”启发,决定自制手机扫码到电脑的应用。项目需求是手机扫描条形码或二维码后实时传送到电脑。实现步骤包括:电脑端用Java Swing和Robot模拟键盘输入,手机端H5调用摄像头扫码(借助html5-qrcode库),并通过WebSocket服务将结果发送至电脑。项目源码及演示视频链接提供。

工作中偶尔需要使用扫码枪进行扫码到电脑上,但是手头又没有扫码枪,跟老板说买一把,老板觉得这东西不常用。于是想着是否可以利用手机扫码功能…到微信小程序里搜索“扫码枪”,发现里面有一个叫“超级扫码枪”的小程序,当看完它实现的功能,瞬间想起“贫穷限制了你的想象力”这句话。下面是关于超级扫码枪的介绍:

超级扫码枪是一款通过小程序扫码(条形码,二维码)后,实时发送到电脑(PC)的轻应用。适用于扫商品包装上的条形码或二维码、扫快递单号、扫发票二维码等等。

我就在琢磨它的实现原理,我自己是否也可以实现它的功能。再者说,一款软件有它的优点自然也有它的缺点,我要实现该软件的基本功能就得比它更简单、更安全、更易使用。于是,立项,开干!!!

需求

实现手机变扫码枪,调用手机摄像头扫码后实时发送到电脑(PC)的文本框内。

任务解析

  • 首先要想电脑(PC)端怎么模拟键盘录入信息
  • 其次手机端怎么调用摄像头并扫码
  • 最后手机端要把扫码结果发送到电脑(PC)端

实战

  1. 电脑(PC)端写个Java客户端Swing程序,并利用Robot模拟键盘录入。Java客户端的实现借鉴了两个项目:
    https://gitee.com/wmazh/easytodo
    https://gitee.com/s2689763871_admin/sftptool
  2. 手机端写个H5页面调用手机摄像头并扫码【注意:用html5-qrcode 要求web服务器必须https协议访问,如果不是的话,是不能使用webRTC的,也就没有获取摄像头的权限了。】
    使用了这个前端类库:https://github.com/mebjas/html5-qrcode
    这是H5的示例:https://github.com/mebjas/html5-qrcode/tree/master/examples/html5
    结合它提供的线上实例:https://blog.minhazav.dev/research/html5-qrcode.html
  3. 电脑(PC)端起WebSocket服务,手机端连接该服务并实时发送消息【该方案的局限性,手机端和电脑端必须在一个wifi下才可以进行通讯发送消息】

演示效果

PC端效果

手机端扫码效果

资源链接

项目源码地址:https://gitee.com/zkool/h5-barcode-gun
电脑(PC)端下载地址:H5扫码枪 V1.0 · zkool/h5-barcode-gun
视频介绍地址:https://www.bilibili.com/video/BV1CH4y1L78Z

目录
相关文章
|
人工智能
通过ChatGPT打造10W+公众号文章
这是一篇非常具有实操性的指南,可能会动到一些某些行业人的蛋糕,但我无益于此。我是一名关注AIGC的博主,初衷是希望每个人都能利用AI工具,为自己的行业增加动力。只有你有心,把文章读几篇,然后自己动手实践,一定能获得成果。
3275 0
通过ChatGPT打造10W+公众号文章
|
缓存 开发框架 前端开发
Spring Boot项目设置网站图标(Favicon)
Spring Boot项目设置网站图标(Favicon)
2541 0
Spring Boot项目设置网站图标(Favicon)
|
SQL XML JSON
分享5个免费的在线 SQL 数据库环境,简直太方便了!
分享5个免费的在线 SQL 数据库环境,简直太方便了!
3922 0
分享5个免费的在线 SQL 数据库环境,简直太方便了!
|
存储 数据可视化 安全
最新榜单!国内免费好用的OA协同软件前十名
在现代企业管理中,OA(Office Automation)协同软件已成为提升工作效率、简化沟通流程的重要工具。本文将重点评测国内十款高性价比的OA协同软件,涵盖任务管理、文件共享、审批流程、日程安排等功能,帮助企业和团队轻松找到理想的解决方案。
4880 6
|
Web App开发 Go iOS开发
【IOS】教你如何在手机端轻松安装 ipa 文件 -(安装器已失效 21.10)
【IOS】教你如何在手机端轻松安装 ipa 文件 -(安装器已失效 21.10)
|
关系型数据库 MySQL Nacos
nacos数据库使用PostgreSQL及集群配置
从Nacos2.2版本开始,Nacos提供了数据源扩展插件,以便让需要进行其他数据库适配的用户自己编写插件来保存数据。
|
NoSQL Java Redis
开发实战:使用Redisson实现分布式延时消息,订单30分钟关闭的另外一种实现!
本文详细介绍了 Redisson 延迟队列(DelayedQueue)的实现原理,包括基本使用、内部数据结构、基本流程、发送和获取延时消息以及初始化延时队列等内容。文章通过代码示例和流程图,逐步解析了延迟消息的发送、接收及处理机制,帮助读者深入了解 Redisson 延迟队列的工作原理。
|
Java Maven 容器
Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行
使用IntelliJ IDEA的Artifacts功能,可以将项目依赖的第三方jar包打包进jar文件中,实现双击jar包即可直接运行。
Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
4609 7