如何将React Native KeyEvent与Expo集成?

问题描述 投票:0回答:3

我正在寻找一种从设备的硬件条形码扫描仪获取输入数据的方法。我发现了一个据说可以完成这项工作的库,它是 React Native KeyEvent

但是,说明主要引导我编辑 android 文件夹内的 gradle 文件。由于我使用的是 Expo,所以我没有 android 文件夹来遵循文档。

如果不弹出到ExpoKit,还有其他方法可以集成它们吗?

javascript android mobile expo
3个回答
3
投票

我设法让插件工作......但这是一个挑战。以下是步骤(由于某种原因,我不得不使用“yarn”。“npm”不起作用):

 yarn add react-native-keyevent
 yarn add --dev react-native-keyevent-expo-config-plugin

将以下行添加到 app.json 文件的“expo”部分:

 "plugins": ["react-native-keyevent-expo-config-plugin"],

编辑您的组件以导入包:

 import KeyEvent from "react-native-keyevent";

设置监听器:

 KeyEvent.onKeyDownListener((keyEvent) => {....}

组件卸载时不要忘记删除侦听器:

 KeyEvent.removeKeyDownListener();

现在这是棘手的部分 - 它不适用于 Expo Go。 您仍然可以在 Expo Go 中运行您的应用程序,但您的应用程序不会接收外部键盘上的击键。 因此,要测试它,您需要实际构建应用程序,然后将其安装在设备上。

另外,我只设法让它在 Android 上运行。 我不需要它在 iOS 上工作,所以没有花任何时间在上面。 因此,我不确定它是否可以在 iOS 上运行。


1
投票

您需要为其编写一个博览会插件。幸运的是,似乎有人已经这么做了。参见:

react-native-keyevent的expo插件


0
投票

接受的答案不再适用于最新的 Expo 50 和 51

答案中提到的插件: react-native-keyevent-expo-config-plugin

此插件尚未更新以支持 Expo SDK 50 和 51 然而它有一个分支可以工作 https://github.com/bamlab/react-native-keyevent-expo-config-plugin

您也可以使用 npm as 添加它

npm i react-native-keyevent

然后是插件

npm install --save-dev @bam.tech/react-native-keyevent
-expo-config-plugin

然后在 App.json 中

"plugins": [
      "<Your other plugins>..",
      "@bam.tech/react-native-keyevent-expo-config-plugin"
    ],
© www.soinside.com 2019 - 2024. All rights reserved.