From 7e2452b6ad0526247dcb310d37f819026c90451c Mon Sep 17 00:00:00 2001 From: Lihang Xu Date: Sun, 22 May 2022 02:26:24 +0800 Subject: [PATCH] feat(dynamsoft barcode scanner): update plugin (#4176) BREAKING: original plugin is replaced by https://github.com/xulihang/cordova-plugin-dynamsoft-barcode-reader --- docs/plugins/dynamsoft-barcode-scanner.md | 11 +- .../dynamsoft-barcode-scanner/README.md | 7 +- .../dynamsoft-barcode-scanner/index.ts | 207 +++++++++++------- 3 files changed, 134 insertions(+), 91 deletions(-) diff --git a/docs/plugins/dynamsoft-barcode-scanner.md b/docs/plugins/dynamsoft-barcode-scanner.md index 09efae32d..b266b8377 100755 --- a/docs/plugins/dynamsoft-barcode-scanner.md +++ b/docs/plugins/dynamsoft-barcode-scanner.md @@ -1,21 +1,20 @@ # Dynamsoft Barcode Scanner ``` -$ git clone https://github.com/Dynamsoft/cordova-plugin-dbr/ -$ ionic cordova plugin add cordova-plugin-dbr +$ ionic cordova plugin add cordova-plugin-dynamsoft-barcode-reader $ npm install @awesome-cordova-plugins/dynamsoft-barcode-scanner ``` ## [Usage Documentation](https://danielsogl.gitbook.io/awesome-cordova-plugins/plugins/dynamsoft-barcode-scanner/) -Plugin Repo: [https://github.com/Dynamsoft/cordova-plugin-dbr/](https://github.com/Dynamsoft/cordova-plugin-dbr/) +Plugin Repo: [https://github.com/xulihang/cordova-plugin-dynamsoft-barcode-reader](https://github.com/xulihang/cordova-plugin-dynamsoft-barcode-reader) -The Dynamsoft Barcode Scanner Plugin opens a camera view and automatically scans a barcode, returning the data back to you. +The Dynamsoft Barcode Scanner Plugin can read barcodes from images as well as camera previews. ## Supported platforms -- Android -- iOS +* Android +* iOS diff --git a/docs/plugins/dynamsoft-barcode-scanner/README.md b/docs/plugins/dynamsoft-barcode-scanner/README.md index 09efae32d..eb11a0731 100755 --- a/docs/plugins/dynamsoft-barcode-scanner/README.md +++ b/docs/plugins/dynamsoft-barcode-scanner/README.md @@ -1,16 +1,15 @@ # Dynamsoft Barcode Scanner ``` -$ git clone https://github.com/Dynamsoft/cordova-plugin-dbr/ -$ ionic cordova plugin add cordova-plugin-dbr +$ ionic cordova plugin add cordova-plugin-dynamsoft-barcode-reader $ npm install @awesome-cordova-plugins/dynamsoft-barcode-scanner ``` ## [Usage Documentation](https://danielsogl.gitbook.io/awesome-cordova-plugins/plugins/dynamsoft-barcode-scanner/) -Plugin Repo: [https://github.com/Dynamsoft/cordova-plugin-dbr/](https://github.com/Dynamsoft/cordova-plugin-dbr/) +Plugin Repo: [https://github.com/xulihang/cordova-plugin-dynamsoft-barcode-reader](https://github.com/xulihang/cordova-plugin-dynamsoft-barcode-reader) -The Dynamsoft Barcode Scanner Plugin opens a camera view and automatically scans a barcode, returning the data back to you. +The Dynamsoft Barcode Scanner Plugin can read barcodes from images as well as camera previews. ## Supported platforms diff --git a/src/@awesome-cordova-plugins/plugins/dynamsoft-barcode-scanner/index.ts b/src/@awesome-cordova-plugins/plugins/dynamsoft-barcode-scanner/index.ts index 75d0c9a49..67eb61a74 100755 --- a/src/@awesome-cordova-plugins/plugins/dynamsoft-barcode-scanner/index.ts +++ b/src/@awesome-cordova-plugins/plugins/dynamsoft-barcode-scanner/index.ts @@ -9,98 +9,52 @@ import { } from '@awesome-cordova-plugins/core'; import { Observable } from 'rxjs'; -export interface BarcodeScannerOptions { - /** - * Prefer front camera. Supported on iOS and Android. - */ - preferFrontCamera?: boolean; - - /** - * Show flip camera button. Supported on iOS and Android. - */ - showFlipCameraButton?: boolean; - - /** - * Show torch button. Supported on iOS and Android. - */ - showTorchButton?: boolean; - - /** - * Disable animations. Supported on iOS only. - */ - disableAnimations?: boolean; - - /** - * Disable success beep. Supported on iOS only. - */ - disableSuccessBeep?: boolean; - - /** - * Prompt text. Supported on Android only. - */ - prompt?: string; - - /** - * Formats separated by commas. Defaults to all formats except `PDF_417` and `RSS_EXPANDED`. - */ - formats?: string; - - /** - * Orientation. Supported on Android only. Can be set to `portrait` or `landscape`. Defaults to none so the user can rotate the phone and pick an orientation. - */ - orientation?: string; - - /** - * Launch with the torch switched on (if available). Supported on Android only. - */ - torchOn?: boolean; - - /** - * Save scan history. Defaults to `false`. Supported on Android only. - */ - saveHistory?: boolean; - - /** - * Display scanned text for X ms. 0 suppresses it entirely, default 1500. Supported on Android only. - */ - resultDisplayDuration?: number; - - /** - * Long key for Dynamsoft Barcode Reader - */ - dynamsoftlicense?: string; +export interface FrameResult { + frameWidth: number; + frameHeight: number; + results: BarcodeResult[]; } -export interface BarcodeScanResult { - format: string; - cancelled: boolean; - text: string; +export interface BarcodeResult { + barcodeText: string; + barcodeFormat: string; + x1: number; + x2: number; + x3: number; + x4: number; + y1: number; + y2: number; + y3: number; + y4: number; } /** * @name dynamsoft-barcode-scanner * @description - * The Barcode Scanner Plugin opens a camera view and automatically scans a barcode, returning the data back to you. - * Requires this Cordova plugin: [BarcodeScanner plugin](https://github.com/Dynamsoft/cordova-plugin-dbr/). + * This plugin scans barcodes using Dynamsoft Barcode Reader + * * @usage * ```typescript - * import { BarcodeScanner } from '@awesome-cordova-plugins/dynamsoft-barcode-scanner'; + * import { dynamsoft-barcode-scanner } from '@awesome-cordova-plugins/dynamsoft-barcode-scanner'; + * + * + * constructor(private dynamsoft-barcode-scanner: dynamsoft-barcode-scanner) { } * * ... * - * const results = await BarcodeScanner.scan({"dynamsoftlicense":"license"}); - * console.log(results); + * + * await this.dynamsoft-barcode-scanner.init("license"); + * this.dynamsoft-barcode-scanner.startScanning("license").subscribe(result => { + console.log(result); + }); * * ``` - * @interfaces - * BarcodeScannerOptions - * BarcodeScanResult */ @Plugin({ pluginName: 'dynamsoft-barcode-scanner', - plugin: 'cordova-plugin-dbr', - pluginRef: 'cordova.plugins.barcodeScanner', - repo: 'https://github.com/Dynamsoft/cordova-plugin-dbr', + plugin: 'cordova-plugin-dynamsoft-barcode-reader', + pluginRef: 'cordova.plugins.DBR', + repo: 'https://github.com/xulihang/cordova-plugin-dynamsoft-barcode-reader', install: '', installVariables: [], platforms: ['Android', 'iOS'], @@ -108,15 +62,106 @@ export interface BarcodeScanResult { @Injectable() export class BarcodeScanner extends AwesomeCordovaNativePlugin { /** - * Open the barcode scanner. - * - * @param {BarcodeScannerOptions} [options] Optional options to pass to the scanner - * @returns {Promise} Returns a Promise that resolves with scanner data, or rejects with an error. + * Initialize Dynamsoft Barcode Reader + * @param license {string} + * @return {Promise} Returns a promise that resolves when the initialization is done */ @Cordova({ - callbackOrder: 'reverse', + successIndex: 1, + errorIndex: 2, }) - scan(options?: BarcodeScannerOptions): Promise { + init(license: string): Promise { + return; + } + + /** + * Set up runtime settings + * @param settings {string} runtime settings template in JSON + * @return {Promise} Returns a promise + */ + @Cordova({ + successIndex: 1, + errorIndex: 2, + }) + initRuntimeSettingsWithString(settings?: string): Promise { + return; + } + + /** + * Output runtime settings to JSON string + * @return {Promise} Returns a promise + */ + @Cordova({ successIndex: 1, errorIndex: 2 }) + outputSettingsToString(): Promise { + return; + } + + /** + * destroy Dynamsoft Barcode Reader + * @return {Promise} Returns a promise + */ + @Cordova({ successIndex: 1, errorIndex: 2 }) + destroy(): Promise { + return; + } + + /** + * start the camera to scan barcodes + * @param dceLicense {string} License of Dynamsoft Camera Enhancer + * @return {Observable} + */ + @Cordova({ + successIndex: 1, + errorIndex: 2, + observable: true, + }) + startScanning(dceLicense?: string): Observable { + return; + } + + /** + * stop scanning + * @return {Promise} Returns a promise + */ + @Cordova({ successIndex: 1, errorIndex: 2 }) + stopScanning(): Promise { + return; + } + + /** + * resume scanning + * @return {Promise} Returns a promise + */ + @Cordova({ successIndex: 1, errorIndex: 2 }) + resumeScanning(): Promise { + return; + } + + /** + * pause scanning + * @return {Promise} Returns a promise + */ + @Cordova({ successIndex: 1, errorIndex: 2 }) + pauseScanning(): Promise { + return; + } + + /** + * get resolution like: 1280x720 + * @return {Promise} Returns a promise + */ + @Cordova({ successIndex: 1, errorIndex: 2 }) + getResolution(): Promise { + return; + } + + /** + * switch torch + * @param desiredStatus {string} on or off + * @return {Promise} Returns a promise + */ + @Cordova({ successIndex: 1, errorIndex: 2 }) + switchTorch(desiredStatus: string): Promise { return; } }