3.0.0 • Published 9 months ago
License SEE LICENSE IN <L...
Share package Abrevva Capacitor Plugin
The EVVA Capacitor Plugin is a collection of tools to work with electronical EVVA access components. It allows for scanning and connecting via BLE.
Features 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 Requirements Capacitor >= 5.0.0 Java 17+ (Android) Android SDK (Android) Android 10+ (API level 29) (Android) Xcode 15.4 (iOS) iOS 15.0+ (iOS) Installation Capacitor 6 npm install @evva/abrevva-capacitor
npx cap sync
Capacitor 5 npm install @evva/abrevva-capacitor@1.0.1
npx cap sync
Examples 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);
});
}
}
Localize EVVA component 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,
);
API Interfaces AbrevvaBLEInterface Method Signature initialize (options?: InitializeOptions | undefined) => Promise<void> isEnabled () => Promise<BooleanResult> isLocationEnabled () => Promise<BooleanResult> startEnabledNotifications () => Promise<void> stopEnabledNotifications () => Promise<void> openLocationSettings () => Promise<void> openBluetoothSettings () => Promise<void> openAppSettings () => Promise<void> requestLEScan (options?: RequestBleDeviceOptions | undefined) => Promise<void> stopLEScan () => Promise<void> addListener (eventName: "onEnabledChanged", listenerFunc: (result: BooleanResult) => void) => PluginListenerHandle addListener (eventName: string, listenerFunc: (event: ReadResult) => void) => PluginListenerHandle addListener (eventName: "onScanResult", listenerFunc: (result: ScanResultInternal) => void) => PluginListenerHandle connect (options: DeviceIdOptions & TimeoutOptions) => Promise<void> disconnect (options: DeviceIdOptions) => Promise<void> read (options: ReadOptions & TimeoutOptions) => Promise<ReadResult> write (options: WriteOptions & TimeoutOptions) => Promise<void> signalize (options: SignalizeOptions) => Promise<void> disengage (options: DisengageOptions) => Promise<StringResult> startNotifications (options: ReadOptions) => Promise<void> stopNotifications (options: ReadOptions) => Promise<void>
InitializeOptions Prop Type androidNeverForLocation
boolean
BooleanResult RequestBleDeviceOptions Prop Type services
string[] name
string namePrefix
string optionalServices
string[] allowDuplicates
boolean scanMode
ScanMode timeout
number
PluginListenerHandle Prop Type remove
() => Promise<void>
ReadResult ScanResultInternal Prop Type device
BleDevice localName
string rssi
number txPower
number manufacturerData
{ key: string : T; } serviceData
{ key: string : T; } uuids
string[] rawAdvertisement
T
BleDevice Prop Type deviceId
string name
string uuids
string[]
DeviceIdOptions TimeoutOptions ReadOptions Prop Type deviceId
string service
string characteristic
string
WriteOptions Prop Type deviceId
string service
string characteristic
string value
string
SignalizeOptions StringResult DisengageOptions Prop Type deviceId
string mobileId
string mobileDeviceKey
string mobileGroupId
string mobileAccessData
string isPermanentRelease
boolean
AbrevvaCryptoInterface 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; }>
Enums ScanMode Members Value SCAN_MODE_LOW_POWER
0 SCAN_MODE_BALANCED
1 SCAN_MODE_LOW_LATENCY
2