Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

vue-qrcode-reader

Package Overview
Dependencies
Maintainers
1
Versions
136
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

vue-qrcode-reader

A set of Vue.js components for detecting and decoding QR codes.

  • 2.3.1-alpha.1
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
20K
decreased by-15.97%
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
uses semantic release code style: prettier
size minified + gzipped npm current version
Mentioned in Awesome Vue

documentation | live demos

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 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. Beyond that, close to zero styling. Make them fit your layout. Usage is simple and straight forward:

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

Screenshots

Screenshot 1 Screenshot 2 Screenshot 3

Browser support :chart_with_upwards_trend:

QrcodeStream

This component fundamentally depends on the Stream API.

Internet ExplorerEdgeFirefoxChromeSafari
NoYesYesYes¹Yes²
  1. Chrome requires HTTPS or localhost (see Troubleshooting for help)
  2. Safari also requires HTTPS even on localhost (see #48). It also won't work in:
    • Chrome for iOS, Firefox for iOS, ... (see #29)
    • WkWebView component of native iOS apps
    • web apps added to home screen (PWA mode) prior to iOS 13.4 (see #76)
QrcodeDropZone and QrcodeCapture

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

Internet ExplorerEdgeFirefoxChromeSafari
10+YesYesYesYes¹
  1. QrcodeCapture doesn't work in web apps added to home screen (PWA mode) on iOS prior to 11.3 (see this StackOverflow question)

Installation :package:

Module import

Run:

npm install vue-qrcode-reader

Either import the components independantly for local registration:

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

const MyComponent = {

  components: {
    QrcodeStream,
    QrcodeDropZone,
    QrcodeCapture
  },

  // ...
))

Or 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.

Classic import

Vue itself must be included first. Then add the following CSS and JS file:

All components are automatically registered globally. Use kebab-case to reference them in your templates:

<qrcode-stream></qrcode-stream>
<qrcode-drop-zone></qrcode-drop-zone>
<qrcode-capture></qrcode-capture>

Troubleshooting :zap:

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.
    • The demo works but it doesn't work in my project: Listen for the init event to investigate errors.
    • The demo doesn't work: Carefully review the Browser Support section above. Maybe your device is just not supported.
I'm running a dev server on localhost. How to test on my mobile device without HTTPS?
  • If your setup is Desktop Chrome + Android Chrome, use Remote Debugging which allows your Android device to access your local server as localhost.
  • Otherwise use a reverse proxy like ngrok or serveo to temporarily make your local server publicly available with HTTPS.
  • There are also loads of serverless/static hosting services that have HTTPS enabled by default and where you can deploy your web app for free (e.g. GitHub Pages, GitLab Pages, Google Firebase, Netlify, Heroku, ZEIT Now, ...)
Some of my QR codes are not being detected.
  • Make sure, there is some white border around the QR code.
  • Color inverted QR codes are not supported (dark background, light foreground).
  • Model 1 QR codes are also not supported.

Thanks :pray:

BrowserStack Logo    Travis-CI Logo

Keywords

FAQs

Package last updated on 22 May 2020

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