开发者社区
社区提问意见反馈
开发者钉组织
扫描二维码
加入支付宝开发者钉组织
android 开发文档
windows 开发文档
linux 开发文档
iot 小程序开发文档
其它
api
收银台
刷脸核身
刷脸登录
会员与授权
发送付款码
发送和接收小指令
版本查询
获取系统属性
系统设置页面
二维码识别
生成二维码
ui 控制
语音播报
本地数据库
本地图片存储
串口通信
外设管理
打印指令
监听按键事件
身份证读卡器适配
电子秤
钱箱
非接卡通信
ic 卡通信
红外测温仪
消息服务
日志服务
前后屏通信
更多使用指南
开发 > 开放能力接入 > 其它 > api >  > 扫码枪应用
收藏
订阅更新
我的文档
设置
原理说明
扫码枪的功能是扫描并识别一维码或二维码,将一维码或二维码转换成相应的字串发送给收银设备。iot 小程序可以借助扫码枪连接蜻蜓设备实现商品码、付款码等码的识别。
说明
小程序容器 10.1.60.24 及以上版本支持 iot 小程序应用扫码枪。
iot 小程序目前不支持扫码枪码值中带英文字符的一维码或二维码, 仅支持数值码。
目前仅支持承载 hid 协议的 usb 连接扫码枪,不支持蓝牙连接扫码枪。
不建议在设备上同时连接多个扫码枪,或者通过扩展 usb 接口连接多个外设,不便于使用者处理事件。
扫码枪的原理是模拟键盘的按键给出所按的字串,例如在蜻蜓的数字键盘按下“0123456789”并“enter”,则在屏幕上显示“0123456789”的字串。扫码枪扫码后将通过 监听按键事件 的 keycode 参数转换,按键“0 ~ 9”由“keycode=7~16”表示,“enter”则由“keycode=66”表示。
说明:蜻蜓设备键盘的有效键值(131~139,144~160)与扫码枪的键值(7~16,66)无冲突。
扫码枪扫码后获得的字串会在末尾加上 66(例:扫码得到字串为 0123456789,则会转换为 keycode=7,8,9,10,11,12,13,14,15,16,66)后发送给蜻蜓设备。蜻蜓设备收到字串后的处理动作为:
1将 keycode >= 7 && keycode <= 16 的 keycode - 7 获得数字,逐个追加到临时变量。
2enter 获取最终的条码值。
示例代码
javascript
复制代码
// .js
onkeypress(r) {
let k = r.keycode;
switch (k) {
case 131:
r.keyname = '收款';
break;
case 132:
r.keyname = '刷脸';
break;
case 133:
r.keyname = '取消';
break;
case 134:
r.keyname = '设置';
break;
}
// 处理扫码枪扫描的字串。
if (k >= 7 && k <= 16) {
// 将 keycode 的值转换为扫描的实际数值。
if (this._barcode === undefined)
this._barcode = '';
this._barcode = (k-7).tostring();
return;
} else if (k === 66) {
// 末尾追加 enter 确认。
console.log('scan barcode', this._barcode);
this._barcode = '';
return;
}
console.log('keyevent', r);
}
内容没有解决您的问题?您还可以前往 或 寻求帮助
凯发k8官方网娱乐官方 copyright © 支付宝(杭州)信息技术有限公司  | icp证浙b2-20160559
该文档对你是否有帮助?
当前页面目录
网站地图