GithubHelp home page GithubHelp logo

duataud / react-native-card-io Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kayla-tech/react-native-card-io

0.0 2.0 0.0 102.01 MB

card.io component for React Native

Java 8.83% JavaScript 4.45% Objective-C 73.71% Ruby 2.45% Swift 10.56%

react-native-card-io's Introduction

card.io component for React Native

A fully featured implementation of card.io for iOS and Android.

Screenshot of card.io in action

Installation iOS

  1. Run npm install react-native-card-io --save in your project directory.
  2. Inside node_modules, unzip react-native-card-io/ios/libs/card.io-iOS-SDK/CardIO/libCardIO.a.zip.
  3. Open your project in XCode (make sure to open .xcworkspace NOT .xcproject), right click on Libraries and click Add Files to "Your Project Name".
  4. Within node_modules, find react-native-card-io/ios and add RCTCardIO.xcodeproj to your project.
  5. Add libRCTCardIO.a to Build Phases -> Link Binary With Libraries.
  6. Add the -lc++ flag to Build Settings -> Other Linker Flags.

Installation Android

TODO: Currently building a react-native app for iOS and Android, so this will be done soon :)

Usage

import {CardIOView, CardIOUtilities} from 'react-native-card-io'

...

componentDidMount() {
  // The preload method prepares card.io to launch faster. Calling preload is optional but suggested.
  // On an iPhone 5S, for example, preloading makes card.io launch ~400ms faster.
  // The best time to call preload is when displaying a view from which card.io might be launched;
  // e.g., inside your view controller's componentDidMount method.
  // preload works in the background; the call to preload returns immediately.
  CardIOUtilities.preload();
},

render() {
  if (CardIOUtilities.canReadCardWithCamera) {
    return (
      <View>
        <CardIOView
          languageOrLocale="en_AU"
          guideColor="#FF0000"
          useCardIOLogo={true}
          hideCardIOLogo={false}
          allowFreelyRotatingCardGuide={true}
          scanInstructions={'Hold card here. It will scan automatically.'}
          scanExpiry={true}
          scannedImageDuration={2}
          detectionMode={CardIOView.cardImageAndNumber}
          didScanCard={result => console.log(result)} />      
      </View>
    );
  }
  return (
    <View style={styles.noCamera}>
      <Text>card.io requires a camera</Text>
    </View>
  );
}

CardIOView

props

See card_io_view.js for all React.PropTypes. All props are optional and the view can be used with simply:

<CardIOView style={{flex: 1}} />

didScanCard

The didScanCard function returns the following object:

{
  cardNumber: string,
  redactedCardNumber: string,
  expiryMonth: number, // January == 1
  expiryYear: number,
  cvv: string,
  postalCode: string,
  scanned: boolean,
  cardImage: string, // base64
  cardType: string,
  logoForCardType: string, // base64
}

To display the images returned by didScanCard use the following:

<Image source={{uri: 'data:image/png;base64,'+ cardImage, isStatic: true}} />

TODO

  • Android implementation
  • implement CardIOPaymentViewController
  • add rotation notifications

Secure

card.io does not store or transmit credit card numbers. Recommend using the Privacy Snapshot react-native component if using with iOS to blur the screen when the app is backgrounded.

react-native-card-io's People

Contributors

alexleventer avatar davidgruebl avatar lrettig avatar rogchap avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.