From c4c3a4afed42212dce8a19e97035d83e40cc5925 Mon Sep 17 00:00:00 2001 From: xulihang Date: Fri, 6 May 2022 11:16:34 +0800 Subject: [PATCH] feat (dynamsoft barcode scanner): update plugin --- docs/plugins/dynamsoft-barcode-scanner.md | 11 +- .../dynamsoft-barcode-scanner/README.md | 7 +- .../dynamsoft-barcode-scanner/index.ts | 199 +++++++++++------- 3 files changed, 130 insertions(+), 87 deletions(-) diff --git a/docs/plugins/dynamsoft-barcode-scanner.md b/docs/plugins/dynamsoft-barcode-scanner.md index 09efae32db..b266b83774 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 09efae32db..eb11a0731f 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 75d0c9a49f..67eb61a741 100755 --- a/src/@awesome-cordova-plugins/plugins/dynamsoft-barcode-scanner/index.ts +++ b/src/@awesome-cordova-plugins/plugins/dynamsoft-barcode-scanner/index.ts @@ -9,114 +9,159 @@ 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; +export interface FrameResult { + frameWidth: number; + frameHeight: number; + results: BarcodeResult[]; +} - /** - * Show torch button. Supported on iOS and Android. - */ - showTorchButton?: boolean; +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 + * This plugin scans barcodes using Dynamsoft Barcode Reader + * + * @usage + * ```typescript + * import { dynamsoft-barcode-scanner } from '@awesome-cordova-plugins/dynamsoft-barcode-scanner'; + * + * + * constructor(private dynamsoft-barcode-scanner: dynamsoft-barcode-scanner) { } + * + * ... + * + * + * await this.dynamsoft-barcode-scanner.init("license"); + * this.dynamsoft-barcode-scanner.startScanning("license").subscribe(result => { + console.log(result); + }); + * + * ``` + */ +@Plugin({ + pluginName: 'dynamsoft-barcode-scanner', + 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'], +}) +@Injectable() +export class BarcodeScanner extends AwesomeCordovaNativePlugin { /** - * Disable animations. Supported on iOS only. + * Initialize Dynamsoft Barcode Reader + * @param license {string} + * @return {Promise} Returns a promise that resolves when the initialization is done */ - disableAnimations?: boolean; + @Cordova({ + successIndex: 1, + errorIndex: 2, + }) + init(license: string): Promise { + return; + } /** - * Disable success beep. Supported on iOS only. + * Set up runtime settings + * @param settings {string} runtime settings template in JSON + * @return {Promise} Returns a promise */ - disableSuccessBeep?: boolean; + @Cordova({ + successIndex: 1, + errorIndex: 2, + }) + initRuntimeSettingsWithString(settings?: string): Promise { + return; + } /** - * Prompt text. Supported on Android only. + * Output runtime settings to JSON string + * @return {Promise} Returns a promise */ - prompt?: string; + @Cordova({ successIndex: 1, errorIndex: 2 }) + outputSettingsToString(): Promise { + return; + } /** - * Formats separated by commas. Defaults to all formats except `PDF_417` and `RSS_EXPANDED`. + * destroy Dynamsoft Barcode Reader + * @return {Promise} Returns a promise */ - formats?: string; + @Cordova({ successIndex: 1, errorIndex: 2 }) + destroy(): Promise { + return; + } /** - * 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. + * start the camera to scan barcodes + * @param dceLicense {string} License of Dynamsoft Camera Enhancer + * @return {Observable} */ - orientation?: string; + @Cordova({ + successIndex: 1, + errorIndex: 2, + observable: true, + }) + startScanning(dceLicense?: string): Observable { + return; + } /** - * Launch with the torch switched on (if available). Supported on Android only. + * stop scanning + * @return {Promise} Returns a promise */ - torchOn?: boolean; + @Cordova({ successIndex: 1, errorIndex: 2 }) + stopScanning(): Promise { + return; + } /** - * Save scan history. Defaults to `false`. Supported on Android only. + * resume scanning + * @return {Promise} Returns a promise */ - saveHistory?: boolean; + @Cordova({ successIndex: 1, errorIndex: 2 }) + resumeScanning(): Promise { + return; + } /** - * Display scanned text for X ms. 0 suppresses it entirely, default 1500. Supported on Android only. + * pause scanning + * @return {Promise} Returns a promise */ - resultDisplayDuration?: number; + @Cordova({ successIndex: 1, errorIndex: 2 }) + pauseScanning(): Promise { + return; + } /** - * Long key for Dynamsoft Barcode Reader + * get resolution like: 1280x720 + * @return {Promise} Returns a promise */ - dynamsoftlicense?: string; -} - -export interface BarcodeScanResult { - format: string; - cancelled: boolean; - text: string; -} + @Cordova({ successIndex: 1, errorIndex: 2 }) + getResolution(): Promise { + return; + } -/** - * @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/). - * @usage - * ```typescript - * import { BarcodeScanner } from '@awesome-cordova-plugins/dynamsoft-barcode-scanner'; - * - * ... - * - * const results = await BarcodeScanner.scan({"dynamsoftlicense":"license"}); - * console.log(results); - * - * ``` - * @interfaces - * BarcodeScannerOptions - * BarcodeScanResult - */ -@Plugin({ - pluginName: 'dynamsoft-barcode-scanner', - plugin: 'cordova-plugin-dbr', - pluginRef: 'cordova.plugins.barcodeScanner', - repo: 'https://github.com/Dynamsoft/cordova-plugin-dbr', - install: '', - installVariables: [], - platforms: ['Android', 'iOS'], -}) -@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. + * switch torch + * @param desiredStatus {string} on or off + * @return {Promise} Returns a promise */ - @Cordova({ - callbackOrder: 'reverse', - }) - scan(options?: BarcodeScannerOptions): Promise { + @Cordova({ successIndex: 1, errorIndex: 2 }) + switchTorch(desiredStatus: string): Promise { return; } }