React native 扫码枪 react-native-scan-gun
开始使用
$ npm install react-native-scan-gun --save
自动链接原生库
$ react-native link react-native-scan-gun
MainActivity
里面 增加 如下代码
链接完原生库后 需要在-
导入
import com.reactlibrary.ScanGunManager;
-
重写
MainActivity
的dispatchKeyEvent
方法 代码如下 具体可参考example的MainActivity
文件/*监听键盘事件,除了返回事件都将它拦截,使用我们自定义的拦截器处理该事件*/ @Override public boolean dispatchKeyEvent(KeyEvent event) { if (event.getKeyCode() != KeyEvent.KEYCODE_BACK) { ScanGunManager.getInstance().analysisKeyEvent(event); return true; } return super.dispatchKeyEvent(event); }
手动安装
Android
- Open up
android/app/src/main/java/[...]/MainActivity.java
- Add
import com.reactlibrary.RNScanGunPackage;
to the imports at the top of the file - Add
new RNScanGunPackage()
to the list returned by thegetPackages()
method
- Append the following lines to
android/settings.gradle
:include ':react-native-scan-gun' project(':react-native-scan-gun').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-scan-gun/android')
- Insert the following lines inside the dependencies block in
android/app/build.gradle
:compile project(':react-native-scan-gun')
使用方法
import RNScanGun from 'react-native-scan-gun';
// TODO: What to do with the module?
RNScanGun;
// 监听扫码回调
DeviceEventEmitter.addListener(RNScanGun.onScanCodeRecevieData, (code) => {
this.setState({ code: code })
})
//手动清除上一次的二维码
RNScanGun.clearScanBarCodeText()