Сканер штрих-кодов GS1 в приложении реакции на родную - PullRequest
0 голосов
/ 24 января 2019

Я использовал библиотеку экспонирования сканера штрих-кодов в своем собственном приложении реакции, но он не может сканировать штрих-код типа GS1, поэтому какую библиотеку я использовал в своем приложении?

Ответы [ 2 ]

0 голосов
/ 28 января 2019

class BarScannerView extends Component {

  constructor(props) {
    super(props);
    this.camera = null;
    this.barcodeCodes = [];

    this.state = {
      changeScreen: false,
      camera: {
        type: RNCamera.Constants.Type.back,
        flashMode: RNCamera.Constants.FlashMode.auto,
        barcodeFinderVisible: true
      }
    };
  }

  onBarCodeRead = (scanResult) => {
    if (scanResult.data !== null) {
      let bacodeScanResult = scanResult.data
      AsyncStorage.setItem('barcodeValue', bacodeScanResult)
      return this.props.navigation.navigate('Stock')
    }
    return;
  }

  componentDidMount() {
    console.log('componentDidMount', this.props)
    this.props.navigation.dismiss()
  }

  componentWillUnmount() {
    console.log('componentWillUnmount', this.props)
  }

  render() {
    return (
      <View style={styles.container}>
        <RNCamera
            ref={ref => {
              this.camera = ref;
            }}
            barcodeFinderVisible={this.state.camera.barcodeFinderVisible}
            barcodeFinderWidth={280}
            barcodeFinderHeight={220}
            barcodeFinderBorderColor="white"
            barcodeFinderBorderWidth={2}
            defaultTouchToFocus
            flashMode={this.state.camera.flashMode}
            onBarCodeRead={this.onBarCodeRead}
            onFocusChanged={() => {}}
            onZoomChanged={() => {}}
            permissionDialogTitle={'Permission to use camera'}
            permissionDialogMessage={'We need your permission to use your camera phone'}
            style={styles.preview}
            type={this.state.camera.type}
        />

        <View style={[styles.overlay, styles.topOverlay]}>
          <Text style={styles.scanScreenMessage}>Please scan the barcode.</Text>
        </View>

        <View style={{position: 'absolute', top: 150, left: '12%' }}>
          <View
            style={{
                width: 300,
                height: 300,
                backgroundColor: 'transparent',
                borderColor: 'white',
                borderWidth: 1
              }}
            >
          </View>
        </View>

        <View style={[styles.overlay, styles.bottomOverlay]}>
          <Button
            onPress={() => { console.log('scan clicked'); }}
            style={styles.enterBarcodeManualButton}
            title="Choose Barcode"
          />
        </View>
      </View>
    );
  }
}

Вы можете следить за этим.

0 голосов
/ 24 января 2019

Вы имеете в виду, какую библиотеку вам следует использовать?Если это так, и вы не используете expo, то https://github.com/react-native-community/react-native-camera это довольно хорошая и простая в использовании зависимость, которую вы можете использовать для своих целей.

...