1. 程式人生 > >React Native 二維碼掃描 react-native-camera的使用

React Native 二維碼掃描 react-native-camera的使用

  1. npm install [email protected]://github.com/lwansbrough/react-native-camera.git --save
  2. react-native link react-native-camera

    import React from 'react';
    import {
    StyleSheet,
    TouchableOpacity,
    View,
    Text,
    InteractionManager,
    Animated,
    Easing,
    Platform,
    Image
    } from 'react-native';
    import Camera from 'react-native-camera'
    ; var Dimensions = require('Dimensions'); var {width, height} = Dimensions.get('window'); export default class CodeReading extends React.Component { constructor(props) { super(props); this.camera = null; this.state = { show:true, anim: new Animated.Value(0), camera: { aspect: Camera.constants.Aspect.
    fill, }, }; } componentDidMount(){ InteractionManager.runAfterInteractions(()=>{ this.startAnimation() }); } startAnimation(){ if(this.state.show){ this.state.anim.setValue(0) Animated.timing(this.state.anim,{ toValue:1, duration:1500, easing:Easing.linear, }).
    start(()=>this.startAnimation()); } } componentWillUnmount(){ this.state.show = false; } //掃描二維碼方法 barcodeReceived = (e) =>{ if(this.state.show){ this.state.show = false; if (e) { this.props.navigator.pop() this.props.ReceiveCode(e.data) } else { Alert.alert( '提示', '掃描失敗' [{text:'確定'}] ) } } } render() { return ( <View style={styles.container}> {/*導航條*/} {this.renderNavBar()} <Camera ref={(cam) => { this.camera = cam; }} style={styles.preview} aspect={this.state.camera.aspect} onBarCodeRead={this.barcodeReceived.bind(this)} barCodeTypes = {['qr']} > <View style = {{height: Platform.OS == 'ios' ? (height-264)/3:(height-244)/3,width:width,backgroundColor:'rgba(0,0,0,0.5)',}}> </View> <View style={{flexDirection:'row'}}> <View style={styles.itemStyle}/> <Image style={styles.rectangle} source={require('../AssetsImages/code_bar.png')}> <Animated.View style={[styles.animatiedStyle, { transform: [{ translateY: this.state.anim.interpolate({ inputRange: [0,1], outputRange: [0,200] }) }] }]}> </Animated.View> </Image> <View style={styles.itemStyle}/> </View> <View style={{flex:1,backgroundColor:'rgba(0, 0, 0, 0.5)',width:width,alignItems:'center'}}> <Text style={styles.textStyle}>將二維碼放入框內,即可自動掃描</Text> </View> </Camera> </View> ); } // 導航條 renderNavBar(){ return( <View style={styles.navBarStyle}> <TouchableOpacity onPress={()=>{this.props.navigator.pop()}} style={styles.leftViewStyle}> <Image source={{uri:'nav_return'}} style={{height:20,width:20}} /> </TouchableOpacity> <Text style={[styles.navTitleStyle,{marginTop:Platform.OS == 'ios'?12:0,fontSize:20}]}> 二維碼 </Text> </View> ) } } const styles = StyleSheet.create({ itemStyle:{ backgroundColor:'rgba(0,0,0,0.5)', width:(width-200)/2, height:200 }, textStyle:{ color:'#fff', marginTop:10, fontWeight:'bold', fontSize:18 }, navTitleStyle: { color:'white', fontWeight:'bold', }, navBarStyle:{ // 導航條樣式 height: Platform.OS == 'ios' ? 64 : 44, backgroundColor:'rgba(34,110,184,1.0)', // 設定主軸的方向 flexDirection:'row', // 垂直居中 ---> 設定側軸的對齊方式 alignItems:'center', justifyContent:'center' }, leftViewStyle:{ // 絕對定位 // 設定主軸的方向 flexDirection:'row', position:'absolute', left:10, bottom:Platform.OS == 'ios' ? 15:12, alignItems:'center', width:30 }, animatiedStyle:{ height:2, backgroundColor:'#00FF00' }, container: { flex: 1, }, preview: { flex: 1, }, rectangle: { height: 200, width: 200, } });
    執行效果如下圖所示,掃描成功後得到返回值e.data,傳回上一個頁面展示。

相關推薦

React Native 掃描 react-native-camera的使用

npm install [email protected]://github.com/lwansbrough/react-native-camera.git --savereact-native link react-native-camera import

React Native 掃描元件(簡單,易用!)

1前言 最近用 React Native 仿寫了一下 ofo 應用,涉及到了二維碼掃描的功能,在 github 上搜了一下,也沒發現一個趁手的二維碼掃描元件,所以乾脆自己動手寫了一個。 其中使用攝像頭實時掃描二維碼進行解析的功能,已經通過 react-native-camera 這個庫實現了,所以我也只是寫

最完善,快速的 react-native 掃描

react-native 二維碼掃描 先看效果 使用的開源庫 安裝 npm install react-native-smart-barcode --save npm install react-native-smar

自定義 React Native 掃描元件(簡單,易用!)

本文為 Marno 原創,轉載必須保留出處! 公眾號 aMarno,關注後回覆 RN 加入交流群 1.前言 最近用 React Native 仿寫了一下 ofo 應用,涉及到了二維碼掃描的功能,在 github 上搜了一

React Native實現掃描

依賴包匯入步驟 詳細步驟可看github上的說明,簡要記錄如下: 1. npm install react-native-camera –save 2. react-native link react-native-camera android手動l

react-native-smart-barcode目前最好用的掃描元件(IOS、android)

最近在製作React-Native專案的時候,條碼識別給我們整個專案帶了不少麻煩,幾款主流的條碼識別元件都不是特別好用,使用者體驗比較差,比如二維碼識別速度慢、掃描頁面十分卡頓用等一系列問題,後來在網上無意間找到一個非常好用的二維碼掃描元件——react-native-smart-barcode,這個元件是

jQuery和react實現

jq如何生成二維碼   程式碼如下: 1.jquery.qrcode生成二維碼程式碼 <!DOCTYPE html> <html> <head>   <script charset='utf-8' type='text/javascript' src=

IOS 使用 ZbarSDK 掃描

fill 下載 src uitext void del symbols per super 1. 下載SDK https://github.com/bmorton/ZBarSDK 2. 引用到項目中 3. 添加引用 4. AppDelegate中添加下面代碼 5.

ZBar 是款桌面電腦用條形碼/掃描工具

進行 output app 新版本 import 系統安裝 安裝文件 window eating ZBar 是款桌面電腦用條形碼/二維碼掃描工具 windows平臺python 2.7環境編譯安裝zbar 最近一個項目需要識別二維碼,找來找去找到了zbar和zxin

Swift AVFoundation 掃描和生成

size ram post nserror out 捕獲 一個 白色 art 項目最終不須要支持iOS6了(淚崩),在二維碼掃描這一塊,可以全然的放棄ZXing庫,改用系統的AVFoundation了,拿swift寫了個Demo,效果例如以下: git

Zxing掃描

ram zxing oss lean 預覽 surface ott serial pac 源代碼地址 有問題能夠加QQ:312122330 之前對於Zbar的二位碼掃描。到項目上線以後才發現掃描過於靈敏。導致有時候掃描到半截就啟動了。 後來翻看ZXIN

iOS掃描

ont 代碼 畫面 告訴 nds ima dds rst bounds 每一步:添加 AVFoundation.framework 庫 General > Linked Frameworks and Libraries 第二步:代碼集成 #import "V

基於Zxing的掃描之橫屏掃描

ews name pla eight 網上 HA 如果 log 簡單的 最近項目條碼掃描要改為橫屏,網上所搜了一下,然後發現我寫的需要改動幾行代碼就可以了,還是很給力的。 如未查看之前的代碼,請移步: 基於Zxing的二維碼生成和二維碼掃描 修改下面寫代碼就可以實現橫

關於掃描的開發,遇到的問題,以及最終結果

無效 () 我不 ont 操作 res 手機 clas 什麽 近期發現之前我使用的zxing二維碼掃描速度較慢,自己不是很滿意,但是找了很久沒有好的優化方式,研究了一段時間(與其說是研究,不如說找相關資料改某動) 這裏有如下幾點內容需要註意下面也是我二維碼優化之旅遇到的問題

集成默認的掃描頁面

定義 color nio tco android nac create toa new 1.在module的build.gradle中執行compile操作 compile ‘cn.yipianfengye.android:zxing-library:2.2‘ 2.在d

iOS 原生掃描

oca lac sig mediatype gate 5.0 項目 machine lec 直接上項目代碼 首先檢查相機權限 AVAuthorizationStatus status = [AVCaptureDevice authorizationStatusFo

掃描登陸的原理及深入解析

一、單方掃描登陸   基本的實現流程:  PC端開啟login.html,ajax請求passport.wx.com?appid=123&redirect_uri=monitor.wx.com,服務端響應帶有uuid=456和狀態碼200的內容,再次發起兩個aj

掃描框架zxing的使用

目前二維碼掃描功能在app上已經非常成熟了,google的zxing專案也是目前可以說是最流行的二維碼掃描框架。但是它本身功能太多,這裡我提取出一些基本的掃碼功能,重新封裝成庫。 github:https://github.com/Sun-Shuai/zxing-demo 使用方法:

iOS 掃描 Swift

實現相機掃描二維碼, 相簿選取圖片識別二維碼     一. 匯入 framework import AVFoundation//二維碼掃描 import CoreImage//二維碼識別 import AudioToolbox//系統音效 二. 服從協議 AV

Android 基於google Zxing實現 條形碼掃描,仿微信掃描效果

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!