设备与技术栈
Android手持机
- 手持机型号iData95W,版本为Android4.4.2,有读RFID和扫条码的模块。
- RFID模块用到了厂商提供的jar包和so文件。
- 扫条码模块用的是广播的方式。
技术栈
- react native 与原生Android的交互,js端调用native端,native端主动发消息给js端。
- Android调用RFID与扫码模块。
- react-native-keyevent,这个dependencies是用于监听手持机的按键事件,以调用native端的读取RFID方法。
前置准备
- 环境配置,开发环境的配置ReactNative官网有详细的教程
- 用数据线连接PC和Android手持机(使用adb devices查看是否连接成功),并确保PC与手持机在同一wifi下。
- react-native init my_rn_demo
- cd my_rn_demo & react-native run-android
- run-android后会出现红屏,”Unable to load script from assets…”,很正常,因为此手持机版本是Android 4.4.2,需要设置Debug server host & port for device来访问开发服务器,Android 5.0以上则可以使用adb reverse命令。按menu键或摇晃手持机即可进入开发菜单,在Dev Settings -> Debug server host & port for device中输入PC的ip和8081端口即可,如192.168.0.154:8081。然后重新运行react-native run-android即可。
用Android Studio打开android目录后,会提醒你更新Gradle Plugin,此处按提示更新即可
Android Studio的Gragle Plugin更新好后,我们重新运行react-native run-android却发现报错了
这个报错很好解决,在build.gradle(android目录下有两个build.gradle,此处为project的)中添加google()就好了,