@nativescript/mlkit-barcode-scanning
v3.0.4
Published
NativeScript MLKit Barcode Scanner module
Readme
@nativescript/mlkit-barcode-scanning
This plugin is used with @nativescript/mlkit-core. It enables barcode scanning and provides the BarcodeResult type for the barcode-scanned data.
Contents
Installation
npm install @nativescript/mlkit-barcode-scanningUse @nativescript/mlkit-barcode-scanning
Follow these steps to scan a barcode:
- Add MLKitView to your page and set the
detectionTypeproperty to"barcode".
<StackLayout>
<MLKitView
detectionType="barcode"
detection="{{ onDetection }}"
/>
<Label row="6">
<FormattedString>
<Span text="Barcode: "/>
<Span text="{{ barcode }}" class="text-green-500"/>
</FormattedString>
</Label>
</StackLayout>- To receive the scanned barcode data, handle the
detectionevent and get the data if the event's type is"barcode".
import { Observable } from "@nativescript/core"
import { DetectionEvent, DetectionType } from "@nativescript/mlkit-core";
import { BarcodeResult } from "@nativescript/mlkit-barcode-scanning";
export class BarcodeScannerViewModel extends Observable {
barcode = ""
...
onDetection(event: DetectionEvent){
if(event.type == DetectionType.Barcode){
const barcodeData: BarcodeResult = event.data[0] as BarcodeResult;
this.set("barcode", barcodeData?.rawValue)
}
}
}
Demo app
You can try a demo app at StackBlitz with the NativeScript Preview app.
API
Interfaces
BarcodeResult
The scanned barcode data object has the following properties:
| Property | Type | Optional
|:---------|:-----|:------------------
| format | BarcodeFormats | No
| calendarEvent | CalenderEvent | Yes
| contactInfo | ContactInfo | Yes
| bounds | Bounds | Yes
| points | Point[] | Yes
| displayValue | string | Yes
| driverLicense| DriverLicense | Yes
| email | Email | Yes
| geoPoint | GeoPoint | Yes
| phone| Phone | Yes
| rawBytes| any[] | Yes
| rawValue | string | Yes
| sms| Sms | Yes
| url| UrlBookmark | Yes
| valueType| ValueType | Yes
| wifi| WiFi | Yes
WiFi
| Property | Type | Optional
|:---------|:-----|:-------
| encryptionType | string | No
| password| string | No
| ssid| string | No
UrlBookmark
| Property | Type | Optional
|:---------|:-----|:-------
| title | string | Yes
| url| string | Yes
Sms
| Property | Type | Optional
|:---------|:-----|:-------
| message | string | No
| honeNumber| string | No
Phone
| Property | Type | Optional
|:---------|:-----|:-------
| number | string | No
| type| PhoneType | No
| Property | Type | Optional
|:---------|:-----|:-------
| address | string | No
| subject | string | No
| body | string | No
| type | EmailType
DriverLicense
| Property | Type | Optional
|:---------|:-----|:-------
| documentType| string | No
| firstName| string | No
| middleName| string | No
| lastName| string | No
| gender| string | No
| addressStreet| string | No
| addressCity| string | No
| addressState| string | No
| addressZip| string | No
| licenseNumber| string | No
| issueDate| string | No
| expiryDate| string | No
| birthDate| string | No
| issuingCountry| string | No
CalenderEvent
| Property | Type | Optional
|:---------|:-----|:-------
| description| string | Yes
| location| string | Yes
| organizer| string | Yes
| status| string | Yes
| summary| string | Yes
| start| string | Yes
| end| string | Yes
Address
| Property | Type | Optional
|:---------|:-----|:-------
| addressLines| string[]| No
| type | AddressType | No
ContactInfo
| Property | Type | Optional
|:---------|:-----|:-------
| addresses| Address[] | No
Origin
| Property | Type | Optional
|:---------|:-----|:-------
| x| number | No
| y| number | No
Size
| Property | Type | Optional
|:---------|:-----|:-------
| width| number | No
| height| number | No
Bounds
| Property | Type | Optional
|:---------|:-----|:-------
| origin | Origin | No
| size | Size | No
Point
| Property | Type | Optional
|:---------|:-----|:-------
| x| number | No
| y| number | No
GeoPoint
| Property | Type | Optional
|:---------|:-----|:-------
| lat| number | No
| lng| number | No
Enums
EncryptionType
Open='open'WPA='wpa'WEP='wep'Unknown='unknown'
PhoneType
Unknown="unknown"Home="home"Work="work"Fax="fax"Mobile="mobile"
EmailType
Unknown="unknown"Home="home"Work="work"
AddressType
Unknown="unknown"Home="home"Work="work"
ValueType
ContactInfo="contactInfo"Email="email"ISBN="isbn"Phone="phone"Product="product"Text="text"Sms="sms"URL="url"WiFi="wifi"Geo="geo"CalenderEvent="calender"DriverLicense="driverLicense"Unknown="unknown"
BarcodeFormats
ALL='all'CODE_128='code_128'CODE_39='code_39'CODE_93='code_93'CODABAR='codabar'DATA_MATRIX='data_matrix'EAN_13= 'ean_13'EAN_8='ean_8'ITF='itf'QR_CODE='qr_code'UPC_A='upc_a'UPC_E='upc_e'PDF417='pdf417'AZTEC='aztec'UNKOWN='unknown'
License
Apache License Version 2.0
