我有一个霍尼韦尔扫描仪,可以在扫描条形码时输出文本。 我可以将它用作文本输入的“键盘”,这非常方便,因为我不需要连接任何东西。 但它的缺点是必须集中输入,从而显示移动设备的虚拟键盘,这对于我正在从事的项目来说是 Not Acceptable 。
有什么方法可以在不聚焦输入的情况下扫描值?我相信监听 keyPress 事件或类似事件将是一种可行的方法,将输入的值存储在 textInput 之外的变量中。
如果有更好的方法来实现这一目标,我洗耳恭听!
最佳答案
好吧,大家都找到了一种方法来做到这一点,但又不会太疯狂。 这不是最优雅的解决方案,但它完全符合我的需要,并且不会向代码添加太多内容。
import { Keyboard, TextInput } from 'react-native';
...
<TextInput
autoFocus
onFocus={() => Keyboard.dismiss()} />
这里的游戏名称是 autoFocus
和 onFocus={() => Keyboard.dismiss()}/>
。
现在我将使用 https://www.npmjs.com/package/react-native-keyevent按照@MattAft的建议监听按键(不幸的是这个包不会给我实际的扫描仪输入。但是,它会触发 keyDown 事件)以在扫描仪读取内容时聚焦 TextInput。
更新
几天前,当我们有时间重构这个组件时,一位同事帮了我一些忙,我们发现在react-native-keyevent包上有一个名为onKeyMultipleListener
的监听器,它不仅监听多个同时按下的按键,但也捕获整个输入,这正是我们此处所需要的。
关于reactjs - 如何在 React Native 中监听键盘输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49199745/