UNPKG

react-native-scan-gun

Version:

<!-- * @Author: gongyonghui * @Date: 2019-09-11 13:12:42 * @LastEditors: gongyonghui * @LastEditTime: 2019-09-11 15:19:16 * @Description: file content -->

75 lines (52 loc) 2.02 kB
<!-- * @Author: gongyonghui * @Date: 2019-09-11 13:12:42 * @LastEditors: gongyonghui * @LastEditTime: 2019-09-11 15:19:16 * @Description: file content --> # React native 扫码枪 react-native-scan-gun ## 开始使用 `$ npm install react-native-scan-gun --save` ### 自动链接原生库 `$ react-native link react-native-scan-gun` ### 链接完原生库后 需要在`MainActivity`里面 增加 如下代码 1. 导入 `import com.reactlibrary.ScanGunManager;` 2. 重写`MainActivity``dispatchKeyEvent`方法 代码如下 具体可参考example的`MainActivity`文件 ```java /*监听键盘事件,除了返回事件都将它拦截,使用我们自定义的拦截器处理该事件*/ @Override public boolean dispatchKeyEvent(KeyEvent event) { if (event.getKeyCode() != KeyEvent.KEYCODE_BACK) { ScanGunManager.getInstance().analysisKeyEvent(event); return true; } return super.dispatchKeyEvent(event); } ``` ### 手动安装 #### Android 1. 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 the `getPackages()` method 2. 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') ``` 3. Insert the following lines inside the dependencies block in `android/app/build.gradle`: ``` compile project(':react-native-scan-gun') ``` ## 使用方法 ```javascript 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() ```