feat(firebase-vision): add barcodeDetector (#3426)

This commit is contained in:
Rubén Alonso Silvestre 2020-06-11 18:10:08 +02:00 committed by GitHub
parent ef17dc5d07
commit 1aacb487a4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,6 +1,185 @@
import { Injectable } from '@angular/core';
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
export enum BarcodeFormat {
UNKNOWN = -1,
ALL_FORMATS = 0,
CODE_128 = 1,
CODE_39 = 2,
CODE_93 = 4,
CODABAR = 8,
DATA_MATRIX = 16,
EAN_13 = 32,
EAN_8 = 64,
ITF = 128,
QR_CODE = 256,
UPC_A = 512,
UPC_E = 1024,
PDF417 = 2048,
AZTEC = 4096
}
export enum BarcodeValueType {
/** Unknown Barcode value types. */
Unknown,
/** Barcode value type for contact info. */
ContactInfo,
/** Barcode value type for email addresses. */
Email,
/** Barcode value type for ISBNs. */
ISBN,
/** Barcode value type for phone numbers. */
Phone,
/** Barcode value type for product codes. */
Product,
/** Barcode value type for SMS details. */
SMS,
/** Barcode value type for plain text. */
Text,
/** Barcode value type for URLs/bookmarks. */
URL,
/** Barcode value type for Wi-Fi access point details. */
WiFi,
/** Barcode value type for geographic coordinates. */
GeographicCoordinates,
/** Barcode value type for calendar events. */
CalendarEvent,
/** Barcode value type for driver's license data. */
DriversLicense
}
export enum BarcodeEmailType {
/** Unknown email type. */
Unknown,
/** Barcode work email type. */
Work,
/** Barcode home email type. */
Home
}
export enum BarcodePhoneType {
/** Unknown phone type. */
Unknown,
/** Barcode work phone type. */
Work,
/** Barcode home phone type. */
Home,
/** Barcode fax phone type. */
Fax,
/** Barcode mobile phone type. */
Mobile
}
export enum BarcodeWiFiEncryptionType {
/** Barcode unknown Wi-Fi encryption type. */
Unknown,
/** Barcode open Wi-Fi encryption type. */
Open,
/** Barcode WPA Wi-Fi encryption type. */
WPA,
/** Barcode WEP Wi-Fi encryption type. */
WEP
}
export enum BarcodeAddressType {
/** Barcode unknown address type. */
Unknown,
/** Barcode work address type. */
Work,
/** Barcode home address type. */
Home
}
export interface Barcode {
valueType: BarcodeValueType
format: BarcodeFormat
rawValue: string
displayValue: string
cornerPoints: any
email: BarcodeEmail
phone: BarcodePhone
sms: BarcodeSms
url: BarcodeUrl
wifi: BarcodeWifi
geoPoint: BarcodeGeoPoint
calendarEvent: BarcodeCalendarEvent
contactInfo: BarcodeContactInfo
driverLicense: BarcodeDriverLicense
}
export interface BarcodeEmail {
address: string
body: string
subject: string
type: BarcodeEmailType
}
export interface BarcodePhone {
number: string
type: BarcodePhoneType
}
export interface BarcodeSms {
phoneNumber: string
message: string
}
export interface BarcodeUrl {
title: string
url: string
}
export interface BarcodeWifi {
ssid: string
password: string
type: BarcodeWiFiEncryptionType
}
export interface BarcodeGeoPoint {
latitude: number
longitude: number
}
export interface BarcodeCalendarEvent {
eventDescription: string
location: string
organizer: string
status: string
summary: string
start: any
end: any
}
export interface BarcodeContactInfo {
title: string
name: string
addresses: BarcodeAddress[]
phones: BarcodePhone[]
emails: BarcodeEmail[]
organization: string
urls: string
}
export interface BarcodeAddress {
addressLine: string
type: BarcodeAddressType
}
export interface BarcodeDriverLicense {
firstName: string
middleName: string
lastName: string
gender: string
addressCity: string
addressState: string
addressStreet: string
addressZip: string
birthDate: string
documentType: string
licenseNumber: string
expiryDate: string
issuingDate: string
issuingCountry: string
}
/**
* @name Firebase Vision
* @description
@ -20,6 +199,10 @@ import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core';
* .then((res: string) => console.log(res))
* .catch((error: string) => console.error(error));
*
* this.firebaseVision.barcodeDetector(FILE_URI)
* .then((res: Barcode[]) => console.log(res))
* .catch((error: string) => console.error(error));
*
* ```
*/
@Plugin({
@ -40,4 +223,9 @@ export class FirebaseVision extends IonicNativePlugin {
onDeviceTextRecognizer(file_uri: string): Promise<string> {
return;
}
@Cordova()
barcodeDetector(file_uri: string): Promise<Barcode[]> {
return;
}
}