Браузер открывается после сканирования QR-кода - ReactNative - PullRequest
0 голосов
/ 27 сентября 2018

Я использую модуль реагировать на встроенную камеру для сканирования кода QR.Но после сканирования он всегда открывает браузер и пытается получить доступ к значению qr как url.Как остановить это открытие браузера вещь.Мне просто нужно было получить значение qr .. любую помощь.Вот мой код.

_handleBarCodeRead(e) {

        try {
            Vibration.vibrate();
            this.setState({scanning: false});
            this.setState({qrcode:e.data});
            //Linking.openURL(e.data).catch(err => console.error(‘An error occured’, err));
            console.log(e.data);

            const {navigate} = this.props.navigation;
            navigate(‘TransactionVerified’);

            //return;
        } catch (error) {
            console.log(error);
        }
    }
    getInitialState() {
        return {
            scanning: true,
            cameraType: Camera.constants.Type.back
        }
    }

    render(){
        if(this.state.scanning) {
            return (
            <View style={styles.container}>
                <Text style={styles.welcome}>
                Scan Code
                </Text>
                <View style={styles.rectangleContainer}>
                <Camera
                 style={styles.camera}
                 type={this.state.cameraType}
                 onBarCodeRead={this._handleBarCodeRead.bind(this)}
                 barCodeTypes={[Camera.constants.BarCodeType.qr]}
                 >
                    <View style={styles.rectangleContainer}>
                    <View style={styles.rectangle}/>
                    </View>
                </Camera>
                </View>
                {/* <Text style={styles.instructions}>
                Double tap R on your keyboard to reload,{‘\n’}
                </Text> */}
            </View>
            );
            }
            else{
            return (<View  style={styles.container}>
                <Text style={styles.welcome}>
                Scan Code
                </Text>
                {/* <Text style={styles.instructions}>
                Double tap R on your keyboard to reload,{‘\n’}
                </Text>      */}
            </View>);
            }

    }

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Если вы ожидаете перенаправления на другой экран, если штрих-код успешно отсканирован.Наблюдалось, что после сканирования штрих-кода можно не получить данные qr.Следовательно, важно определить, успешно ли получено значение qr или нет.Для этого вам необходимо обновить код «_handleBarCodeRead» следующим образом:

try {
    if (e.data !== undefined) {
        Vibration.vibrate();
        this.setState({scanning: false});
        this.setState({qrcode:e.data});
        //Linking.openURL(e.data).catch(err => console.error(‘An error occured’, err));
        console.log(e.data);

        const {navigate} = this.props.navigation;
        navigate(‘TransactionVerified’);
    }
} catch (error) {
    console.log(error);
}
0 голосов
/ 27 сентября 2018

Ваша проблема, вероятно, связана со строкой комментариев.Попробуйте извлечь эту строку.Если ничего не работает, вы можете попробовать другой модуль.Вы можете использовать 'response-native-qrcode-scanner', который будет проще.вот ссылка на github .

...