Сканирование штрих-кода Zebra (Code-128) не работает с iOS - PullRequest
0 голосов
/ 08 октября 2019

Это код, который я использовал для сканера штрих-кода. Он сканирует только QR-код на iOS. На андроиде работает нормально. А также я использовал разные пакеты, все они не работают на iOS.

import React, {
  Component,
} from 'react'
import {
  View,
  StyleSheet,
  Alert,
} from 'react-native'

Пакеты для BarcodeScanner называются

import Barcode from 'react-native-smart-barcode-scan'
import TimerEnhance from 'react-native-smart-timer-enhance'

Класс штрих-кода

class BarcodeTest extends Component {

  // structure
  constructor(props) {
    super(props);
    // initial state
    this.state = {
      viewAppear: true,
    };
  }

  render() {

    return (

Здесь вызывается штрих-код.

      <View style={{flex: 1, backgroundColor: 'black',}}>
        {this.state.viewAppear ? 
        <Barcode style={{flex: 1,}}
          ref={component => this._barCode = component}
          onBarCodeRead={this._onBarCodeRead}/> : null}
      </View>
    )
  }

Компонент монтируется, а компонент монтируется

  componentDidMount() {
    let viewAppearCallBack = (event) => {
      this.setTimeout(() => {
        this.setState({
          viewAppear: true,
        })
      }, 255)

    }
    this._listeners = [
      // this.props.navigator.navigationContext.addListener('didfocus', 
viewAppearCallBack)
    ]

  }

  componentWillUnmount() {
    this._listeners && this._listeners.forEach(listener => 
listener.remove());
  }

Функции для использования сканирования штрих-кода

  _onBarCodeRead = (e) => {
    console.log(`e.nativeEvent.data.type = ${e.nativeEvent.data.type}, 
e.nativeEvent.data.code = ${e.nativeEvent.data.code}`)
    this._stopScan()
    Alert.alert(e.nativeEvent.data.type, e.nativeEvent.data.code, [
      {text: 'OK', onPress: () => this._startScan()},
    ])
  } 

  _startScan = (e) => {
    this._barCode.startScan()
  }

  _stopScan = (e) => {enter code here
    this._barCode.stopScan()
   }

}

`enter code here`export default TimerEnhance(BarcodeTest)
...