The EVVA Capacitor Plugin is a collection of tools to work with electronical EVVA access components. It allows for scanning and connecting via BLE.
BLE Scanner for EVVA components in range
Localize EVVA components encountered by a scan
Disengage EVVA components encountered by a scan
Read / Write data via BLE
Capacitor >= 5.0.0
Java 17+ (Android)
Android SDK (Android)
Android 10+ (API level 29) (Android)
Xcode 15.4 (iOS)
iOS 15.0+ (iOS)
npm install @evva/abrevva-capacitor
npx cap sync
npm install @evva/abrevva-capacitor@1.0.1
npx cap sync
Initialize and scan for EVVA components
import { AbrevvaBLEClient , ScanResult } from "@evva/abrevva-capacitor" ;
class ExampleClass {
private results : ScanResult [ ] ;
async startScan ( event : any ) {
this . results = [ ] ;
await AbrevvaBLEClient . requestLEScan ( { timeout : 5_000 } , ( result : ScanResult ) => {
this . results . push ( result ) ;
} ) ;
}
}
With the signalize method you can localize EVVA components. On a successful signalization the component will emit a melody indicating its location.
const success = await AbrevvaBLEClient . signalize ( 'deviceId' ) ;
Perform disengage on EVVA components
For the component disengage you have to provide access credentials to the EVVA component. Those are generally acquired in the form of access media metadata from the Xesar software.
const status = await AbrevvaBLEClient . disengage (
'mobileId' ,
'mobileDeviceKey' ,
'mobileGroupId' ,
'mobileAccessData' ,
false ,
) ;
Prop
Type
androidNeverForLocation
boolean
Prop
Type
services
string[]
name
string
namePrefix
string
optionalServices
string[]
allowDuplicates
boolean
scanMode
ScanMode
timeout
number
Prop
Type
remove
() => Promise<void>
Prop
Type
device
BleDevice
localName
string
rssi
number
txPower
number
manufacturerData
{ [key: string]: T; }
serviceData
{ [key: string]: T; }
uuids
string[]
rawAdvertisement
T
Prop
Type
deviceId
string
name
string
uuids
string[]
Prop
Type
deviceId
string
Prop
Type
deviceId
string
service
string
characteristic
string
Prop
Type
deviceId
string
service
string
characteristic
string
value
string
Prop
Type
deviceId
string
Prop
Type
deviceId
string
mobileId
string
mobileDeviceKey
string
mobileGroupId
string
mobileAccessData
string
isPermanentRelease
boolean
Method
Signature
encrypt
(options: { key: string; iv: string; adata: string; pt: string; tagLength: number; }) => Promise<{ cipherText: string; authTag: string; }>
encryptFile
(options: { sharedSecret: string; ptPath: string; ctPath: string; }) => Promise<void>
decrypt
(options: { key: string; iv: string; adata: string; ct: string; tagLength: number; }) => Promise<{ plainText: string; authOk: boolean; }>
decryptFile
(options: { sharedSecret: string; ctPath: string; ptPath: string; }) => Promise<void>
decryptFileFromURL
(options: { sharedSecret: string; url: string; ptPath: string; }) => Promise<void>
generateKeyPair
() => Promise<{ privateKey: string; publicKey: string; }>
computeSharedSecret
(options: { privateKey: string; peerPublicKey: string; }) => Promise<{ sharedSecret: string; }>
computeED25519PublicKey
(options: { privateKey: string; }) => Promise<{ publicKey: string; }>
sign
(options: { privateKey: string; data: string; }) => Promise<{ signature: string; }>
verify
(options: { publicKey: string; data: string; signature: string; }) => Promise<void>
random
(options: { numBytes: number; }) => Promise<{ value: string; }>
derive
(options: { key: string; salt: string; info: string; length: number; }) => Promise<{ value: string; }>
Members
Value
SCAN_MODE_LOW_POWER
0
SCAN_MODE_BALANCED
1
SCAN_MODE_LOW_LATENCY
2