npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

cordova-plugin-google-code-scanner

v1.1.0

Published

Google code scanner Cordova plugin implementation.

Downloads

26

Readme

npm npm GitHub package.json version GitHub code size in bytes GitHub top language GitHub GitHub last commit

cordova-plugin-google-code-scanner

The Google code scanner API provides a complete solution for scanning codes without requiring your app to request camera permission, while preserving user privacy. This is accomplished by delegating the task of scanning the code to Google Play services and returning only the scan results to your app.

Platforms

  • Android 5+ (minSDK 21)
  • Browser (filler platform)

Installation

Install the plugin from NPM:

cordova plugin add cordova-plugin-google-code-scanner

By default plugin is installed with play-services-code-scanner version 16.1.0. To install with a newer version in the future use the PLAY_SERVICES_GCS_VERSION variable as follows:

cordova plugin add cordova-plugin-google-code-scanner --variable PLAY_SERVICES_GCS_VERSION="16.1.0"

Methods

startScan

Opens the code scanner view to scan barcode.

cordova.plugins.GoogleCodeScanner.startScan(successCallback, errorCallback, [options])

| options | | | --- | --- | | barcodeFormats | int: An optional bit field representing the accepted barcode formats as defined in Barcode.BarcodeFormat. |

If you know which barcode formats you expect to read, you can improve the speed of the barcode detector by configuring it to only detect those formats. For example, to detect only Aztec code and QR codes, set barcodeFormats to 4352 (256 + 4096).

Success callback return values

JSON object as follows:

| jsonBarcode | | | --- | --- | | rawValue | String: the barcode's raw, unmodified, and uninterpreted content. | | formatName | String: the barcode type name. E.g: FORMAT_EAN_13. | | formatValue | int: the barcode format type (i.e. its encoding) constant value. | | valueType | int: the format type of the barcode value. |

Error callback return values

  • String: The error description.
    • On initial use: Waiting for the Barcode UI module to be downloaded.
    • On old Play Services version: Code scanner module is not supported on current Google Play Services version, please upgrade.

The first time startScan is invoked, the error callback will notify you that the barcode UI module is being downloaded in the background, if it has not already been installed for another use case. It's up to you to detect and handle this first-time use error. To handle this, it would be wise to show a loading spinner, wait a few seconds, and retry the scan after the module was downloaded.

Example 1

Scan code in any format and catch the error whenever the UI module was not yet downloaded:

var onSuccess = function (jsonBarcode) {
	var rawValue = jsonBarcode.rawValue;
	var formatName = jsonBarcode.formatName;
	var formatValue = jsonBarcode.formatValue;
	var valueType = jsonBarcode.valueType;
	// Do things with the code.
};
var onError = function (strError) {
	if(strError == 'Waiting for the Barcode UI module to be downloaded.'){
		// Downloading barcode UI: consider showing a full-screen spinner, and auto-retry scan in a few seconds.
	}
	console.error(strError);
};
cordova.plugins.GoogleCodeScanner.startScan(onSuccess, onError);

Example 2

Scan only QR codes:

var onSuccess = function (jsonBarcode) {
	var rawValue = jsonBarcode.rawValue;
	// Do things with the code.
};
var onError = function (strError) {
	console.error(strError);
};
var options = {};
options.barcodeFormats = cordova.plugins.GoogleCodeScanner.BarcodeFormat.FORMAT_QR_CODE;
cordova.plugins.GoogleCodeScanner.startScan(onSuccess, onError, options);

Example 3

Scan either EAN8 or EAN13 barcodes:

var onSuccess = function (jsonBarcode) {
	var rawValue = jsonBarcode.rawValue;
	// Do things with the code.
};
var onError = function (strError) {
	console.error(strError);
};
var options = {};
options.barcodeFormats = cordova.plugins.GoogleCodeScanner.BarcodeFormat.FORMAT_EAN_8 + cordova.plugins.GoogleCodeScanner.BarcodeFormat.FORMAT_EAN_13 ;
cordova.plugins.GoogleCodeScanner.startScan(onSuccess, onError, options);

Browser quirks

The browser platform method will show a prompt to enter the code string manually, no scanning is performed.

getBarcodeConstant

Retrieve the Barcode format constant value by its String name. Useful to scan new barcode formats added in the future.

cordova.plugins.GoogleCodeScanner.getBarcodeConstant(onSuccess, onError, options);

| options | | | --- | --- | | barcodeFormat | String: The Barcode format constant name to query. Eg: FORMAT_AZTEC |

Success callback return values

JSON object as follows:

| jsonConstant | | | --- | --- | | formatName | String: the barcode format name. E.g: FORMAT_EAN_13. | | formatValue | int: the barcode format constant value. |

Example

var onSuccess = function (jsonBarcode) {
	var formatName = jsonBarcode.formatName;
	var formatValue = jsonBarcode.formatValue;
};
var onError = function (strError) {
	console.error(strError);
};
var options = {};
options.barcodeFormat = "FORMAT_DATA_MATRIX";
cordova.plugins.GoogleCodeScanner.getBarcodeConstant(onSuccess, onError, options);

Browser quirks

The browser platform does not implement this method.

Predefined barcode formats

Because the startScan method accepts an integer, all formats from the ML Kit Barcode class are supported.

The following barcode constants are pre-defined by the plugin for your convenience:

cordova.plugins.GoogleCodeScanner.BarcodeFormat {
	FORMAT_ALL_FORMATS: 0,
	FORMAT_CODE_128: 1,
	FORMAT_CODE_39: 2,
	FORMAT_CODE_93: 4,
	FORMAT_CODABAR: 8,
	FORMAT_DATA_MATRIX: 16,
	FORMAT_EAN_13: 32,
	FORMAT_EAN_8: 64,
	FORMAT_ITF: 128,
	FORMAT_QR_CODE: 256,
	FORMAT_UPC_A: 512,
	FORMAT_UPC_E: 1024,
	FORMAT_PDF417: 2048,
	FORMAT_AZTEC: 4096
}

Remarks

  • Camera usage permission not required.
  • Reads all barcodes blazingly faster than any other barcode plugin thanks to the Google Play Services API.
  • Plugin uses Google Code Scanner 16.0.0-beta2 by default.
  • To use a newer version in the future, the install accepts the PLAY_SERVICES_GCS_VERSION parameter.
  • Whenever Play Store app is disabled, the UI module cannot be downloaded.
  • If you are viewing this README in NPM, there is probably a more up-to-date version in GitHub.

Plugin demo app

Contributing

Please report any issue with this plugin in GitHub by providing detailed context and sample code. PRs to improve and add new features or platforms are always welcome.