Socket
Socket
Sign inDemoInstall

vue-qrcode-reader

Package Overview
Dependencies
Maintainers
1
Versions
135
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

vue-qrcode-reader

A Vue.js component, accessing the device camera and allowing users to read QR-Codes, within the browser


Version published
Weekly downloads
19K
decreased by-21.45%
Maintainers
1
Weekly downloads
 
Created
Source

Logo

for Vue.js 2 npm monthly downloads Travis CI: build status
is maintained? yes licence: MIT badges = awesome
size minified + gzipped npm current version
uses semantic release

A set of Vue.js components, allowing you to detect and decode QR codes, without leaving the browser.

  • :movie_camera: QrcodeStream accesses the device camera and continuously scans the incoming frames.
  • :put_litter_in_its_place: QrcodeDropZone renders to an empty region where you can drag-and-drop images to be decoded.
  • :open_file_folder: QrcodeCapture is a classic file upload field, instantly scanning all files you select.

All components are responsive. What doesn't fit your layout can be customized.

You also get simple elegant APIs:

<qrcode-stream @decode="onDecode"></qrcode-stream>
methods: {
  onDecode (decodedString) {
    // ...
  }
}

Live Demos | Documentation

Screenshot 1 Screenshot 2 Screenshot 3

Browser support

QrcodeStream

This component fundamentally depends on the Stream API.

Internet ExplorerEdgeFirefoxChromeSafari
NoYesYesYes11+
  • Chrome requires HTTPS or localhost (see Troubleshooting for help)
  • Safari also requires HTTPS even on localhost (see #48)
  • on iOS it only works with Safari
    • Chrome for iOS, Firefox for iOS and so on are not supported (see #29)
    • even web apps added to home screen are not supported (see #76)
QrcodeDropZone and QrcodeCapture

The newest API these components depend on is the FileReader API.

Internet ExplorerEdgeFirefoxChromeSafari
10+YesYesYesYes
  • Drag-and-drop is not supported on mobile

Troubleshooting

  • I don't see the camera when using QrcodeStream.
    • Check if it works on the demo page. Especially the Decode All demo, since it renders error messages. If you see errors, consult the docs to understand their meaning.
      • Demo works but not locally: Listen for the init event to investigate errors.
      • Demo doesn't work: Carefully review the Browser Support section above. Maybe your device is just not supported.
  • I can't test my app on my mobile device since I'm running a dev server on localhost but it's not served with HTTPS.

Installation

npm install vue-qrcode-reader

or with Yarn:

yarn add vue-qrcode-reader

Default import

You can either import the components independantly and register them in another components scope:

import { QrcodeStream, QrcodeDropZone, QrcodeCapture } from 'vue-qrcode-reader'

Vue.component('my-component', {
  components: {
    QrcodeStream,
    QrcodeDropZone,
    QrcodeCapture
  },

  // ...
))

Or alternatively register all of them globally right away:

import Vue from 'vue'
import VueQrcodeReader from 'vue-qrcode-reader'

Vue.use(VueQrcodeReader)

⚠️ A css file is included when importing the package. You may have to setup your bundler to embed the css in your page.

Browser

All the examples on the demo page utilize single-file components. To use them in your project you need a build tool like webpack. Check out this fiddle for a simpler example you can use right in the browser.

Besides Vue you need to include the following CSS and JS file:

The global variable window.VueQrcodeReader should now be available.

All components should be automatically registered globally. If not, you can do it like this:

Vue.use(VueQrcodeReader)

You can also register specific components locally, in one of your components:

Vue.component('my-component', {
  components: {
    'qrcode-stream': VueQrcodeReader.QrcodeStream,
    'qrcode-drop-zone': VueQrcodeReader.QrcodeDropZone,
    'qrcode-capture': VueQrcodeReader.QrcodeCapture
  },

  // ...
)

Keywords

FAQs

Package last updated on 23 Jan 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc