Skip to content

zeng-zhiming/expo-barcode-scanner-plus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

expo-barcode-scanner-plus

本库是在expo-barcode-scanner库上进行扩展,为expo项目提供扫描各种支持的条形码。在expo-barcode-scanner的基础上增加了对react-native-web的支持。

安装

$ npx expo install expo-barcode-scanner

$ npx expo install expo-av

$ npx expo install expo-barcode-scanner-plus

$ yarn add expo-barcode-scanner

$ yarn add install expo-av

$ yarn add expo-barcode-scanner-plus

$ npm install expo-barcode-scanner --save

$ npm install expo-av --save

$ npm install expo-barcode-scanner-plus --save

Usage

import React, {Component} from 'react';
import {
    SafeAreaView,
    StyleSheet,
    Text,
    View,
    TouchableOpacity,
} from 'react-native';
import { BarCodeScanner } from 'expo-barcode-scanner-plus';


class TestPage extends Component {

    // 构造函数
    constructor(props, context) {
        super(props, context);

        this.state = {
            isScan: false,
        };
    }

    onStartPress = () => {
        this.requestPermissionsAsync().then(()=>{});
    };

    onStopPress = () => {
        this.setState({
            isScan: false,
        });
    };

    requestPermissionsAsync = async () => {
        let permis = await BarCodeScanner.getPermissionsAsync();
        if (permis["status"] !== "granted") permis = await  BarCodeScanner.requestPermissionsAsync();
        this.setState({
            isScan: permis["status"] === "granted",
        });
    }

    onBarCodeScanned = (result) => {
        console.log(result);
        alert("二维码内容: "+result["data"]);
    };

    render() {

        const {isScan} = this.state;

        return (
            <SafeAreaView style={{flex: 1}}>
                <View style={styles.container}>
                    <View style={{width:300, height:300, overflow:"hidden",justifyContent: 'center',
                        alignItems: 'center',}}>
                        {
                            <BarCodeScanner
                                onBarCodeScanned={ isScan ? this.onBarCodeScanned : null}
                                style={{width:300, height:300, backgroundColor:"red"}}
                            />
                        }
                    </View>
                    <TouchableOpacity onPress={this.onStartPress}>
                        <Text>点击开始</Text>
                    </TouchableOpacity>
                    <TouchableOpacity onPress={this.onStopPress}>
                        <Text>点击停止</Text>
                    </TouchableOpacity>
                </View>
            </SafeAreaView>
        );
    }
}


const styles = StyleSheet.create({
    container: {
        height: '100%',
        justifyContent: 'center',
        alignItems: 'center',
    },
});


export default TestPage;

About

本库为expo项目提供扫描各种支持的条形码。在expo-barcode-scanner的基础上增加了Web支持

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published