如何在React Native中收听键盘输入

Luc*_*rdo 9 keyboard-events reactjs react-native

我有一台霍尼韦尔扫描仪,可在扫描条形码时输出文字.我可以将它用作文本输入的"键盘",这非常方便,因为我不需要接口任何东西.但它的缺点是必须集中输入并因此显示移动设备的虚拟键盘,这对我正在进行的项目来说是不可接受的.

有没有办法在不必聚焦输入的情况下扫描值?我相信听取keyPress事件或类似的事件将是一种方法,将输入的值存储在textInput以外的变量中.

如果有更好的方法来实现这一点,我全都耳朵!

Luc*_*rdo 6

好吧,大家,找到了一种方法来做到这一点,而不会太疯狂。这不是最优雅的解决方案,但它正是我所需要的,并且不会向代码中添加太多内容。

import { Keyboard, TextInput } from 'react-native';

...

<TextInput
  autoFocus
  onFocus={() => Keyboard.dismiss()} />
Run Code Online (Sandbox Code Playgroud)

这里的游戏名称是autoFocus和onFocus={() => Keyboard.dismiss()} />。

现在我将按照@MattAft 的建议使用https://www.npmjs.com/package/react-native-keyevent来监听按键(不幸的是,这个包不会给我实际的扫描仪输入。但是,它会,触发 keyDown 事件)以在扫描仪读取内容时聚焦 TextInput。

更新 几天前,当我们有时间重构这个组件时,一位同事帮了我一些忙,我们发现onKeyMultipleListener在 react-native-keyevent 包上有一个侦听器,它不仅侦听多个同时发生的 keyPresses,而且捕获整个输入,这正是我们在这里需要的。

  • 给别人。'react-native-keyevent' 不适用于 iOS。 (3认同)