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

简介: 为解决无扫码枪问题,作者受到微信小程序“超级扫码枪”启发,决定自制手机扫码到电脑的应用。项目需求是手机扫描条形码或二维码后实时传送到电脑。实现步骤包括:电脑端用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

目录
相关文章
|
Java 应用服务中间件 开发工具
如何使用IDEA创建JSP页面
如何使用IDEA创建JSP页面
1638 0
|
安全 Java Maven
关于代码混淆,看这篇就够了
关于代码混淆,看这篇就够了
1836 4
|
开发工具 git Windows
VSCode下载与安装使用教程【超详细讲解】
VSCode下载与安装使用教程【超详细讲解】
4848 0
VSCode下载与安装使用教程【超详细讲解】
|
关系型数据库 MySQL Nacos
nacos数据库使用PostgreSQL及集群配置
从Nacos2.2版本开始,Nacos提供了数据源扩展插件,以便让需要进行其他数据库适配的用户自己编写插件来保存数据。
|
弹性计算 网络协议 安全
【图文教程】阿里云服务器开放端口设置(超详细)
阿里云服务器端口怎么打开?云服务器ECS端口在安全组中开启,轻量应用服务器端口在防火墙中打开,阿里云服务器网以80端口为例,来详细说下阿里云服务器端口开放图文教程,其他的端口如8080、3306、443、1433也是同样的方法进行开启端口:
42164 2
|
缓存 API 开发工具
几款优秀的点播、RTSP/RTMP直播播放器介绍
介绍:Ijkplayer 是Bilibili发布的基于 FFplay 的轻量级 Android/iOS 视频播放器。实现了跨平台功能,API 易于集成;编译配置可裁剪,方便控制安装包大小;支持硬件加速解码,更加省电;提供 Android 平台下应用弹幕集成的解决方案。
2768 0
如何给 NPM 设置代理
GFW 蛋疼的把 https://registry.npmjs.org 给墙了,导致无法通过 NPM 安装模块。
4206 0
|
7月前
|
XML 语音技术 Android开发
Android中TextToSpeech的使用
本文介绍了在Android开发中使用TextToSpeech(TTS)实现语音合成的功能。通过实例代码展示了TTS的初始化、语言设置、语音播放及队列模式的选择,并提供了将语音保存为音频文件的方法。项目中包含一个简单的按钮触发朗读功能,适合初学者学习和实践。代码示例完整,涵盖Activity生命周期管理与XML布局设计。
510 4
|
API Android开发 容器
33. 【Android教程】悬浮窗:PopupWindow
33. 【Android教程】悬浮窗:PopupWindow
2130 2
|
JavaScript
基于Vue2.X对WangEditor 5富文本编辑器进行封装与使用,支持单个或多个图片点击、粘贴、拖拽上传,Vue3.X项目也可直接使用
这篇文章介绍了如何在Vue 2.X项目中封装和使用WangEditor 5富文本编辑器,支持图片的点击、粘贴和拖拽上传,同时提到封装的组件也适用于Vue 3.X项目,并提供了详细的使用示例和后端配置。
1806 1
基于Vue2.X对WangEditor 5富文本编辑器进行封装与使用,支持单个或多个图片点击、粘贴、拖拽上传,Vue3.X项目也可直接使用