最近开发一款工业用的安卓扫描终端,遇到一个很头疼的问题。
问题描述:
当使用终端者,按下扫描按钮时的时候,需要终端需要识别出这事扫描按钮并且做出一系列业务逻辑。
问题原因:
一般工厂使用带有扫描功能的终端产品时,一般都带有扫描组件,但是我们为了业务系统不受设备限制等原因,所以要自己模拟扫描事件。
问题分析:
1、监听扫描按钮
2、扫描按钮识别后会将识别的数据一一放入光标所在的文本框里面。例如:扫描数据是“123456”,设备会在极短的时间内,将“1”先放进去,然后将“2”放进去,以此类推,让肉眼以为“123456”是一起放进去的。
3、在数据完全放进去之后,触发业务数据。
4、第二次扫描数据时,先要清空文本框里面的数据
解决方法:
1、使用keydown或keyup事件来识别是否是扫描键,我是使用的keydowm
2、因为将扫描枪识别的数据放入文本框需要一点时间,所以我使用延迟函数访问业务方法。
3、当扫描枪按下的一瞬间我会清空光标所在的文本框数据
核心代码:
windown.onkeydown({e=>{
// 清空文本框数据
})
windown.onkeyup({e=>{
// 判读是否是扫描键
//延迟200ms 后调用业务逻辑
})