Socket
Socket
Sign inDemoInstall

nativescript-barcodescanner

Package Overview
Dependencies
0
Maintainers
1
Versions
69
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.7.4 to 2.7.5

.npmignore

14

barcodescanner-common.d.ts

@@ -0,1 +1,3 @@

import { ContentView } from "tns-core-modules/ui/content-view";
import { Property } from "tns-core-modules/ui/core/properties";
export interface ScanResult {

@@ -109,1 +111,13 @@ text: string;

}
/**** View-related stuff below ****/
export declare const formatsProperty: Property<BarcodeScannerView, string>;
export declare const preferFrontCameraProperty: Property<BarcodeScannerView, boolean>;
export declare const beepOnScanProperty: Property<BarcodeScannerView, boolean>;
export declare const reportDuplicatesProperty: Property<BarcodeScannerView, boolean>;
export declare abstract class BarcodeScannerView extends ContentView {
static scanResultEvent: string;
protected formats: string;
protected preferFrontCamera: boolean;
protected beepOnScan: boolean;
protected reportDuplicates: boolean;
}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var content_view_1 = require("tns-core-modules/ui/content-view");
var properties_1 = require("tns-core-modules/ui/core/properties");
var view_base_1 = require("tns-core-modules/ui/core/view-base");
/**** View-related stuff below ****/
exports.formatsProperty = new properties_1.Property({
name: "formats",
defaultValue: null,
});
exports.preferFrontCameraProperty = new properties_1.Property({
name: "preferFrontCamera",
defaultValue: false,
valueConverter: view_base_1.booleanConverter
});
exports.beepOnScanProperty = new properties_1.Property({
name: "beepOnScan",
defaultValue: true,
valueConverter: view_base_1.booleanConverter
});
exports.reportDuplicatesProperty = new properties_1.Property({
name: "reportDuplicates",
defaultValue: false,
valueConverter: view_base_1.booleanConverter
});
var BarcodeScannerView = /** @class */ (function (_super) {
__extends(BarcodeScannerView, _super);
function BarcodeScannerView() {
return _super !== null && _super.apply(this, arguments) || this;
}
BarcodeScannerView.prototype[exports.formatsProperty.setNative] = function (value) {
this.formats = value;
};
BarcodeScannerView.prototype[exports.preferFrontCameraProperty.setNative] = function (value) {
this.preferFrontCamera = value;
};
BarcodeScannerView.prototype[exports.beepOnScanProperty.setNative] = function (value) {
this.beepOnScan = value;
};
BarcodeScannerView.prototype[exports.reportDuplicatesProperty.setNative] = function (value) {
this.reportDuplicates = value;
};
BarcodeScannerView.scanResultEvent = "scanResult";
return BarcodeScannerView;
}(content_view_1.ContentView));
exports.BarcodeScannerView = BarcodeScannerView;
exports.formatsProperty.register(BarcodeScannerView);
exports.preferFrontCameraProperty.register(BarcodeScannerView);
exports.beepOnScanProperty.register(BarcodeScannerView);
exports.reportDuplicatesProperty.register(BarcodeScannerView);

2

barcodescanner.android.js

@@ -8,3 +8,3 @@ "use strict";

var _onContinuousScanResult = undefined;
var BarcodeScanner = (function () {
var BarcodeScanner = /** @class */ (function () {
function BarcodeScanner() {

@@ -11,0 +11,0 @@ var _this = this;

@@ -1,2 +0,9 @@

import { ScanOptions, ScanResult } from "./barcodescanner-common";
import { BarcodeScannerView as BarcodeScannerBaseView, ScanOptions, ScanResult } from "./barcodescanner-common";
export declare class BarcodeScannerView extends BarcodeScannerBaseView {
private _reader;
private _scanner;
createNativeView(): Object;
initView(): void;
onLayout(left: number, top: number, right: number, bottom: number): void;
}
export declare class BarcodeScanner {

@@ -3,0 +10,0 @@ private _observer;

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var barcodescanner_common_1 = require("./barcodescanner-common");
var utils = require("tns-core-modules/utils/utils");
var frame = require("tns-core-modules/ui/frame");
/* no luck yet
export class BarcodeScannerView extends BarcodeScannerBaseView {
private _reader: any;
private _scanner: any;
private _ios: any;
private _continuous: boolean;
constructor() {
super();
// let authStatus = AVCaptureDevice.authorizationStatusForMediaType(AVMediaTypeVideo);
// if (authStatus !== AVAuthorizationStatus.Authorized) {
// }
let closeButtonLabel = "bla";
let types = [AVMetadataObjectTypeUPCECode, AVMetadataObjectTypeCode39Code, AVMetadataObjectTypeCode39Mod43Code,
AVMetadataObjectTypeEAN13Code, AVMetadataObjectTypeEAN8Code, AVMetadataObjectTypeCode93Code, AVMetadataObjectTypeCode128Code,
AVMetadataObjectTypePDF417Code, AVMetadataObjectTypeQRCode, AVMetadataObjectTypeAztecCode];
this._reader = QRCodeReader.readerWithMetadataObjectTypes(types);
let torch = false;
let flip = false;
let startScanningAtLoad = true;
// this._scanner = QRCodeReaderViewController.readerWithCancelButtonTitleCodeReaderStartScanningAtLoadShowSwitchCameraButtonShowTorchButton(closeButtonLabel, this._reader, startScanningAtLoad, flip, torch);
// this._scanner.modalPresentationStyle = UIModalPresentationStyle.FormSheet;
// Assign first to local variable, otherwise it will be garbage collected since delegate is weak reference.
let isContinuous = false;
// this._scanDelegate = QRCodeReaderDelegateImpl.initWithOwner(new WeakRef(this));
let delegate = QRCodeReaderDelegateImpl.initWithOwner(new WeakRef(this));
delegate.setCallback(true, isContinuous, true, (reader: string, text: string, format: string) => {
// Remove the local variable for the delegate.
delegate = undefined;
});
// this._scanner.delegate = delegate;
console.log("--- this._reader.previewLayer: " + this._reader.previewLayer);
// this._ios = this._reader.previewLayer; // TODO
console.log("--- ios: " + this.ios);
if (this.ios) {
this.ios.layer.insertSublayerAtIndex(this._reader.previewLayer, 0);
var BarcodeScannerView = /** @class */ (function (_super) {
__extends(BarcodeScannerView, _super);
function BarcodeScannerView() {
return _super !== null && _super.apply(this, arguments) || this;
}
// instead of a delegate we can use setCompletionWithBlock: https://github.com/yannickl/QRCodeReaderViewController/blob/master/QRCodeReaderViewController/QRCodeReader.h#L201
setTimeout(() => {
this._reader.startScanning();
}, 4000);
}
public onLayout(left: number, top: number, right: number, bottom: number): void {
super.onLayout(left, top, right, bottom);
if (this.ios) {
console.log(">>> yes, layout");
this._reader.previewLayer.frame = this.ios.layer.bounds;
} else {
console.log(">>> no, layout");
}
}
get ios(): any {
return this._ios;
}
set continuous(value: boolean) {
this._continuous = value;
}
}
*/
var BarcodeScanner = (function () {
BarcodeScannerView.prototype.createNativeView = function () {
var v = _super.prototype.createNativeView.call(this);
this.initView();
return v;
};
BarcodeScannerView.prototype.initView = function () {
var types = getBarcodeTypes(this.formats);
this._reader = QRCodeReader.readerWithMetadataObjectTypes(types);
var torch = false;
var flip = false;
var closeButtonLabel = null;
var cancelLabelBackgroundColor = null;
if (this.preferFrontCamera) {
this._reader.switchDeviceInput();
}
this._scanner = QRCodeReaderViewController.readerWithCancelButtonTitleCodeReaderStartScanningAtLoadShowSwitchCameraButtonShowTorchButtonCancelButtonBackgroundColor(closeButtonLabel, this._reader, true, flip, torch, cancelLabelBackgroundColor);
this._scanner.modalPresentationStyle = 3 /* CurrentContext */;
var that = this;
var delegate = QRCodeReaderDelegateImpl.initWithOwner(new WeakRef(this));
delegate.setCallback(this.beepOnScan, true, this.reportDuplicates, function (text, format) {
that.notify({
eventName: barcodescanner_common_1.BarcodeScannerView.scanResultEvent,
object: that,
format: format,
text: text
});
});
this._scanner.delegate = delegate;
if (this.ios) {
this.ios.layer.insertSublayerAtIndex(this._reader.previewLayer, 0);
this._reader.startScanning();
}
};
BarcodeScannerView.prototype.onLayout = function (left, top, right, bottom) {
_super.prototype.onLayout.call(this, left, top, right, bottom);
if (this.ios) {
this._reader.previewLayer.frame = this.ios.layer.bounds;
}
};
return BarcodeScannerView;
}(barcodescanner_common_1.BarcodeScannerView));
exports.BarcodeScannerView = BarcodeScannerView;
var BarcodeScanner = /** @class */ (function () {
function BarcodeScanner() {

@@ -180,40 +154,3 @@ this._device = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo);

_this._closeCallback = arg.closeCallback;
var types = [];
if (arg.formats) {
var formats = arg.formats.split(",");
for (var _i = 0, formats_1 = formats; _i < formats_1.length; _i++) {
var format = formats_1[_i];
format = format.trim();
if (format === "QR_CODE")
types.push(AVMetadataObjectTypeQRCode);
else if (format === "PDF_417")
types.push(AVMetadataObjectTypePDF417Code);
else if (format === "AZTEC")
types.push(AVMetadataObjectTypeAztecCode);
else if (format === "UPC_E")
types.push(AVMetadataObjectTypeUPCECode);
else if (format === "CODE_39")
types.push(AVMetadataObjectTypeCode39Code);
else if (format === "CODE_39_MOD_43")
types.push(AVMetadataObjectTypeCode39Mod43Code);
else if (format === "CODE_93")
types.push(AVMetadataObjectTypeCode93Code);
else if (format === "CODE_128")
types.push(AVMetadataObjectTypeCode128Code);
else if (format === "DATA_MATRIX")
types.push(AVMetadataObjectTypeDataMatrixCode);
else if (format === "EAN_8")
types.push(AVMetadataObjectTypeEAN8Code);
else if (format === "EAN_13")
types.push(AVMetadataObjectTypeEAN13Code);
else if (format === "ITF")
types.push(AVMetadataObjectTypeITF14Code);
}
}
else {
types = [AVMetadataObjectTypeUPCECode, AVMetadataObjectTypeCode39Code, AVMetadataObjectTypeCode39Mod43Code,
AVMetadataObjectTypeEAN13Code, AVMetadataObjectTypeEAN8Code, AVMetadataObjectTypeCode93Code, AVMetadataObjectTypeCode128Code,
AVMetadataObjectTypeDataMatrixCode, AVMetadataObjectTypeITF14Code,
AVMetadataObjectTypePDF417Code, AVMetadataObjectTypeQRCode, AVMetadataObjectTypeAztecCode];
}
var types = getBarcodeTypes(arg.formats);
var reader = QRCodeReader.readerWithMetadataObjectTypes(types);

@@ -281,3 +218,41 @@ if (arg.preferFrontCamera && reader.hasFrontDevice()) {

exports.BarcodeScanner = BarcodeScanner;
var QRCodeReaderDelegateImpl = (function (_super) {
var getBarcodeTypes = function (formatsString) {
var types = [];
if (formatsString) {
var formats = formatsString.split(",");
for (var _i = 0, formats_1 = formats; _i < formats_1.length; _i++) {
var format = formats_1[_i];
format = format.trim();
if (format === "QR_CODE")
types.push(AVMetadataObjectTypeQRCode);
else if (format === "PDF_417")
types.push(AVMetadataObjectTypePDF417Code);
else if (format === "AZTEC")
types.push(AVMetadataObjectTypeAztecCode);
else if (format === "UPC_E")
types.push(AVMetadataObjectTypeUPCECode);
else if (format === "CODE_39")
types.push(AVMetadataObjectTypeCode39Code);
else if (format === "CODE_39_MOD_43")
types.push(AVMetadataObjectTypeCode39Mod43Code);
else if (format === "CODE_93")
types.push(AVMetadataObjectTypeCode93Code);
else if (format === "CODE_128")
types.push(AVMetadataObjectTypeCode128Code);
else if (format === "DATA_MATRIX")
types.push(AVMetadataObjectTypeDataMatrixCode);
else if (format === "EAN_8")
types.push(AVMetadataObjectTypeEAN8Code);
else if (format === "EAN_13")
types.push(AVMetadataObjectTypeEAN13Code);
else if (format === "ITF")
types.push(AVMetadataObjectTypeITF14Code);
}
}
else {
types.push(AVMetadataObjectTypeUPCECode, AVMetadataObjectTypeCode39Code, AVMetadataObjectTypeCode39Mod43Code, AVMetadataObjectTypeEAN13Code, AVMetadataObjectTypeEAN8Code, AVMetadataObjectTypeCode93Code, AVMetadataObjectTypeCode128Code, AVMetadataObjectTypeDataMatrixCode, AVMetadataObjectTypeITF14Code, AVMetadataObjectTypePDF417Code, AVMetadataObjectTypeQRCode, AVMetadataObjectTypeAztecCode);
}
return types;
};
var QRCodeReaderDelegateImpl = /** @class */ (function (_super) {
__extends(QRCodeReaderDelegateImpl, _super);

@@ -346,3 +321,3 @@ function QRCodeReaderDelegateImpl() {

}(NSObject));
var VolumeObserverClass = (function (_super) {
var VolumeObserverClass = /** @class */ (function (_super) {
__extends(VolumeObserverClass, _super);

@@ -349,0 +324,0 @@ function VolumeObserverClass() {

{
"name": "nativescript-barcodescanner",
"version": "2.7.4",
"version": "2.7.5",
"description": "Scan QR/barcodes with your NativeScript app.",

@@ -16,2 +16,3 @@ "main": "barcodescanner",

"build": "npm i && npm run tsc",
"setup": "npm run build && cd ../demo && npm i",
"postclone": "npm i && cd ../demo && npm i && cd ../src && npm run plugin.link",

@@ -69,9 +70,8 @@ "test.android": "npm i && npm run tsc && npm run tslint && cd ../demo && tns build android && tns test android --justlaunch",

"nativescript-dev-typescript": "libs",
"prompt": "^1.0.0",
"rimraf": "^2.5.0",
"tns-core-modules": "~3.3.0",
"tns-platform-declarations": "~3.3.0",
"tns-core-modules": "~3.4.0",
"tns-platform-declarations": "~3.4.0",
"tslint": "^5.0.0",
"typescript": "~2.4.0"
"typescript": "~2.6.0"
}
}

@@ -48,2 +48,47 @@ # NativeScript BarcodeScanner

## Embedding the scanner on an existing page (iOS)
<img src="docs/ios_embedded_scanner.png" width="281px"/>
As you can see, you can style the view any way you like, and even overlay it with an image or button.
To recreate the layout above, look at [these lines in the demo app](https://github.com/EddyVerbruggen/nativescript-barcodescanner/blob/23395bec3e5a26622146daea96dd6407a8413f70/demo/app/main-page.xml#L17-L31).
### XML
```xml
<Page xmlns="http://schemas.nativescript.org/tns.xsd" xmlns:Barcode="nativescript-barcodescanner">
```
```xml
<iOS>
<Barcode:BarcodeScannerView
class="scanner-round"
formats="QR_CODE, EAN_13"
beepOnScan="true"
reportDuplicates="true"
preferFrontCamera="false"
scanResult="onScanResult" />
</iOS>
```
### Embedding in Angular
Component:
```typescript
import { registerElement } from "nativescript-angular/element-registry";
registerElement("BarcodeScanner", () => require("nativescript-barcodescanner").BarcodeScannerView);
```
View:
```html
<BarcodeScanner
class="scanner-round"
formats="QR_CODE, EAN_13"
beepOnScan="true"
reportDuplicates="true"
preferFrontCamera="false"
(scanResult)="onScanResult($event)" />
</BarcodeScanner>
```
## iOS runtime permission reason

@@ -262,1 +307,7 @@ You've probably seen a permission popup like this before (this plugin will trigger one as well, automatically):

```
## Troubleshooting
If you get the error `TypeError: Cannot read property 'zxing' of undefined` on android, try the following steps:
1. Delete the app from your device
2. Remove the folder `platforms/android`. This triggers a complete rebuild
3. run `tns run android`
SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc