当前位置: 首页 > news >正文

web端接收读卡器卡片信息

项目背景

通过电脑连接的读卡器读取卡片信息,并由web页面接收和处理卡片信息。

读卡器抛出卡片信息流程

  1. 卡片贴近或放置到读卡器上
  2. 读卡器解析卡片信息,并形成固定格式的字符串,包括的信息有:卡片写入的数据、卡片原数据(id、标识等)。比如身份证包括姓名、身份证号、卡片id、卡片标识,这些数据格式一般是通用的。
  3. 读卡器将字符串写入当前设备focus状态的输入框中:比如word,web页面的input标签等
  4. 接收到的字符串需要转义才能在js中使用
function ascii2native( str ) {return ( str + '' ).replace( /\\u[\da-z]{4}/gi , function( ascii ) {return unescape( ascii.replace( /\\/, '%' ) );});
}

不同的读卡器可能会有差异,有的资料里提到可以使用decodeURIComponent,根据设备的实际情况选择转义方法吧。

web页面接收卡片信息流程

  1. 页面添加接收卡片信息的input标签
    1.1 如果不希望input标签在界面上被看见,可以使用定位将标签移到界面外,或者使用透明度0处理。也有说使用hidden属性的,亲测接收不到数据。
  2. 侦听input标签的input事件并取值
  3. 解析卡片信息并使用

注意事项(坑坑)

一、web页面保证接收到字符的前提有两个:

  1. 浏览器处于激活状态,也就是处于前台。因为卡片信息只会抛给当前设备处于前台的界面内。web页面没有能力保证一直处于激活状态,所以能做的只有侦听window的blur和focus,用来给用户做提示。
  2. web页面的input标签要一直处于focus状态,可以用setInterval定时器,保证input的focus状态
  3. 浏览器处于激活状态下的一些接收不到的场景
    3.1 焦点在地址栏里
    3.2 焦点在F12界面或其他插件等界面

切记:只有input处于focus状态下 且 界面焦点在web页面内范围内,才能顺利接收卡片信息

二、带中文输入法的设备接收到的数据错乱

原因:卡片信息会激活输入法功能,input收到的结果会受输入法影响

解决方法:将input的type属性置为password

input代码

<input type="password" />
// todo 侦听input事件
// todo 侦听window焦点变化事件
http://www.lryc.cn/news/8186.html

相关文章:

  • BUUCTF-练习场-WEB-第一部分(8道)
  • Java Reflection 实战- Class类
  • 背包问题理解思路(01背包、完全背包、分组背包)
  • Mr. Cappuccino的第39杯咖啡——Kubernetes之深入理解Pod
  • SqlSession 和 SqlSessionTemplate 简单使用及注意事项
  • 1. QSaveFile和QFile的简单使用
  • 工业4.0是如何优化垃圾处理行业的
  • vue 动画(transition)
  • Python 爬虫工程师面试经验分享,金三银四
  • MySQL实战篇-MySQL 降配导致的实例宕机
  • 时隔多年,这次我终于把动态代理的源码翻了个地儿朝天
  • 数据分析-深度学习 Tensorflow Day6
  • leaflet 设置多个marker,导出为一个geojson文件(066)
  • 企业与第三方供应商合作时,会存在哪些安全风险?
  • 技术源自洛克希德·马丁,光场XR眼镜FYR解析
  • 剑指 Offer 10- II. 青蛙跳台阶问题(LeetCode 70. 爬楼梯)(动态规划打表)
  • webpack(高级)--文件的压缩Terser(js/css/html) Tree Shaking
  • 做软文发布需要注意哪些细节?
  • 【Python】一篇文章读懂yield基本用法
  • Docker getting started
  • 【Uniapp使用遇到问题合集】
  • 宝塔面板破解最新教程
  • 基于zookeeper的Hadoop集群搭建详细步骤
  • 职称有哪些意义?如何提升职称?
  • mulesoft MCIA 破釜沉舟备考 2023.02.15.09
  • 【项目实战】@ConditionalOnProperty注解让我少写了一些if判断
  • SQL中的游标、异常处理、存储函数及总结
  • Splashtop:支持M1/M2芯片 Mac 电脑的远程控制软件
  • 实验十三、阻容耦合共射放大电路的频率响应
  • 【每天进步一点点】函数表达式和函数声明