From c3bb5bb17e0aac32c386b2ed11aa4d334b0f374b Mon Sep 17 00:00:00 2001 From: Ritzlgrmft Date: Thu, 17 Sep 2015 16:31:15 +0200 Subject: [PATCH] Definitions for cordova-plugin-ibeacon added --- .../cordova-plugin-ibeacon-tests.ts | 62 ++++++++++++ .../cordova-plugin-ibeacon.d.ts | 95 +++++++++++++++++++ 2 files changed, 157 insertions(+) create mode 100644 cordova-plugin-ibeacon/cordova-plugin-ibeacon-tests.ts create mode 100644 cordova-plugin-ibeacon/cordova-plugin-ibeacon.d.ts diff --git a/cordova-plugin-ibeacon/cordova-plugin-ibeacon-tests.ts b/cordova-plugin-ibeacon/cordova-plugin-ibeacon-tests.ts new file mode 100644 index 0000000000..7520c39d52 --- /dev/null +++ b/cordova-plugin-ibeacon/cordova-plugin-ibeacon-tests.ts @@ -0,0 +1,62 @@ +/// +/// + +function registerDelegates() { + cordova.plugins.locationManager.enableDebugLogs(); + + cordova.plugins.locationManager.delegate.didRangeBeaconsInRegion = (pluginResult) => didRangeBeaconsInRegion(pluginResult); + cordova.plugins.locationManager.delegate.didEnterRegion = (pluginResult) => didEnterRegion(pluginResult); + cordova.plugins.locationManager.delegate.didExitRegion = (pluginResult) => didExitRegion(pluginResult); + cordova.plugins.locationManager.delegate.didDetermineStateForRegion = (pluginResult) => didDetermineStateForRegion(pluginResult); + cordova.plugins.locationManager.delegate.didChangeAuthorizationStatus = (authorizationStatus) => didChangeAuthorizationStatus(authorizationStatus); + cordova.plugins.locationManager.delegate.didStartMonitoringForRegion = (pluginResult) => didStartMonitoringForRegion(pluginResult); + cordova.plugins.locationManager.delegate.monitoringDidFailForRegionWithError = (pluginResult) => monitoringDidFailForRegionWithError(pluginResult); + + cordova.plugins.locationManager.onDomDelegateReady(); +} + +function didRangeBeaconsInRegion(pluginResult: BeaconPlugin.PluginResult): void { + for (var beacon of pluginResult.beacons) { + console.log(beacon.uuid, beacon.major, beacon.minor, beacon.accuracy, beacon.proximity, beacon.rssi, beacon.tx); + } +} + +function didEnterRegion(pluginResult: BeaconPlugin.PluginResult): void { + var region: BeaconPlugin.Region = new cordova.plugins.locationManager.BeaconRegion("identifier", "uuid", 1, 2);; + cordova.plugins.locationManager.startRangingBeaconsInRegion(this.createBeaconRegionFromPluginResult(pluginResult)) + .then(() => { + console.log("startRangingBeaconsInRegion succeeded"); + }) + .catch((reason: any) => { + console.error("startRangingBeaconsInRegion failed: " + reason); + }); +} + +function didExitRegion(pluginResult: BeaconPlugin.PluginResult): void { + var region: BeaconPlugin.Region; + cordova.plugins.locationManager.stopRangingBeaconsInRegion(region) + .then(() => { + console.log("stopRangingBeaconsInRegion succeeded"); + }) + .catch((reason: any) => { + console.error("stopRangingBeaconsInRegion failed: " + reason); + }); +} + +function didDetermineStateForRegion(pluginResult: BeaconPlugin.PluginResult): void { + if (pluginResult.state === "CLRegionStateInside") { + console.log(pluginResult.region.identifier); + } +} + +function didChangeAuthorizationStatus(authorizationStatus: string): void { + console.log(authorizationStatus); +} + +function didStartMonitoringForRegion(pluginResult: BeaconPlugin.PluginResult): void { + console.log(pluginResult.region.identifier); +} + +function monitoringDidFailForRegionWithError(pluginResult: BeaconPlugin.PluginResult): void { + console.log(pluginResult.region.identifier); +} \ No newline at end of file diff --git a/cordova-plugin-ibeacon/cordova-plugin-ibeacon.d.ts b/cordova-plugin-ibeacon/cordova-plugin-ibeacon.d.ts new file mode 100644 index 0000000000..8f1f6af1a6 --- /dev/null +++ b/cordova-plugin-ibeacon/cordova-plugin-ibeacon.d.ts @@ -0,0 +1,95 @@ +// Type definitions for cordova-plugin-ibeacon v3.3.0 +// Project: https://github.com/petermetz/cordova-plugin-ibeacon +// Definitions by: Markus Wagner +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +interface CordovaPlugins { + locationManager: BeaconPlugin.LocationManager; +} + +declare module BeaconPlugin { + /** + * Beacon Plugin. + */ + export interface LocationManager { + delegate: Delegate; + BeaconRegion: BeaconRegion; + onDomDelegateReady(): void; + startMonitoringForRegion(region: Region): Q.Promise; + stopMonitoringForRegion(region: Region): Q.Promise; + requestStateForRegion(region: Region): Q.Promise; + startRangingBeaconsInRegion(region: Region): Q.Promise; + stopRangingBeaconsInRegion(region: Region): Q.Promise; + getAuthorizationStatus(): Q.Promise; + requestWhenInUseAuthorization(): Q.Promise; + requestAlwaysAuthorization(): Q.Promise; + getMonitoredRegions(): Q.Promise; + getRangedRegions(): Q.Promise; + isRangingAvailable(): Q.Promise; + isMonitoringAvailableForClass(region: Region): Q.Promise; + startAdvertising(region: Region, measuredPower: boolean): Q.Promise; + stopAdvertising(): Q.Promise; + isAdvertisingAvailable(): Q.Promise; + isAdvertising(): Q.Promise; + disableDebugLogs(): Q.Promise; + enableDebugNotifications(): Q.Promise; + disableDebugNotifications(): Q.Promise; + enableDebugLogs(): Q.Promise; + isBluetoothEnabled(): Q.Promise; + enableBluetooth(): Q.Promise; + disableBluetooth(): Q.Promise; + appendToDeviceLog(message: string): Q.Promise; + } + + export interface PluginResult { + eventType: string; + region: Region; + beacons: Beacon[]; + authorizationStatus: string; + state: string; + } + + export interface Delegate { + didDetermineStateForRegion(pluginResult: PluginResult): void; + didStartMonitoringForRegion(pluginResult: PluginResult): void; + didExitRegion(pluginResult: PluginResult): void; + didEnterRegion(pluginResult: PluginResult): void; + didRangeBeaconsInRegion(pluginResult: PluginResult): void; + peripheralManagerDidStartAdvertising(pluginResult: PluginResult): void; + peripheralManagerDidUpdateState(pluginResult: PluginResult): void; + didChangeAuthorizationStatus(authorizationStatus: string): void; + monitoringDidFailForRegionWithError(pluginResult: PluginResult): void; + } + + export interface Region { + identifier: string; + new (identifier: string): Region; + } + + export interface BeaconRegion extends Region { + uuid: string; + major: string; + minor: string; + notifyEntryStateOnDisplay: boolean; + new (identifier: string, uuid: string, major?: number, minor?: number, notifyEntryStateOnDisplay?: boolean): BeaconRegion; + } + + export interface CircularRegion extends Region { + latitude: number; + longitude: number; + radius: number; + new (identifier: string, latitude: number, longitude: number, radius: number): CircularRegion; + } + + export interface Beacon { + uuid: string; + major: string; + minor: string; + proximity: string; + tx: number; + rssi: number; + accuracy: number; + } +}