rwq
react-webcam-qr-scanner
npm i react-webcam-qr-scanner
rwq

react-webcam-qr-scanner

An implementation of a real-time QR-code scanner using WebRTC

by Alex Kurnev

1.0.8 (see all)License:MITTypeScript:Not Found
npm i react-webcam-qr-scanner
Readme

React webcam QR-scanner

An implementation of a real-time QR-code scanner using WebRTC

  • Based on jsQR Library
  • Properly disposable resources (MediaStream)
  • Web worker support (for the detection process)
  • Fallback to main thread supported
  • Implemented as a pure React component

Installation

Using NPM:

npm install react-webcam-qr-scanner

Using Yarn:

yarn add react-webcam-qr-scanner

Usage

Here is an example of a simple React component that utilizes react-webcam-qr-scanner

import React from "react";
import Scanner from "react-webcam-qr-scanner";

const MyAwesomeComponent = (props) => {

  const handleDecode = (result) => {
    console.log(result);
  } 

  const handleScannerLoad = (mode) => {
    console.log(mode);
  }

  return (
    <Scanner 
      className="some-classname"
      onDecode={handleDecode}
      onScannerLoad={handleScannerLoad}
      constraints={{ 
        audio: false, 
        video: { 
          facingMode: "environment" 
        } 
      }}
      captureSize={{ width: 1280, height: 720 }}
    />
  );
}

Props

Most of the props are identical to the React \<video> tag (e.g. classname, name, id, event handlers etc). However, some of them define the decoder behaviour and can be set as follows:

PropertyTypeMeaning
onDecodefunctiona callback which fires when a QR-code is successfully decoded
onScannerLoadfunctiona callback which fires when QR-decoding script is successfully loaded
constraintsobjecta MediaStreamConstraints object
captureSizeobject { width: number, height: number }Represents the size of the frame area sensitive for QR-detection

License

This package is licensed under MIT

Feedback

I'm also open to new suggestions for improving this package. Contacts: simpleman383@gmail.com