Skip to content

Commit c3bb5bb

Browse files
committed
Definitions for cordova-plugin-ibeacon added
1 parent e9cc82a commit c3bb5bb

File tree

2 files changed

+157
-0
lines changed

2 files changed

+157
-0
lines changed
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
/// <reference path="../cordova/cordova.d.ts" />
2+
/// <reference path="./cordova-plugin-ibeacon.d.ts" />
3+
4+
function registerDelegates() {
5+
cordova.plugins.locationManager.enableDebugLogs();
6+
7+
cordova.plugins.locationManager.delegate.didRangeBeaconsInRegion = (pluginResult) => didRangeBeaconsInRegion(pluginResult);
8+
cordova.plugins.locationManager.delegate.didEnterRegion = (pluginResult) => didEnterRegion(pluginResult);
9+
cordova.plugins.locationManager.delegate.didExitRegion = (pluginResult) => didExitRegion(pluginResult);
10+
cordova.plugins.locationManager.delegate.didDetermineStateForRegion = (pluginResult) => didDetermineStateForRegion(pluginResult);
11+
cordova.plugins.locationManager.delegate.didChangeAuthorizationStatus = (authorizationStatus) => didChangeAuthorizationStatus(authorizationStatus);
12+
cordova.plugins.locationManager.delegate.didStartMonitoringForRegion = (pluginResult) => didStartMonitoringForRegion(pluginResult);
13+
cordova.plugins.locationManager.delegate.monitoringDidFailForRegionWithError = (pluginResult) => monitoringDidFailForRegionWithError(pluginResult);
14+
15+
cordova.plugins.locationManager.onDomDelegateReady();
16+
}
17+
18+
function didRangeBeaconsInRegion(pluginResult: BeaconPlugin.PluginResult): void {
19+
for (var beacon of pluginResult.beacons) {
20+
console.log(beacon.uuid, beacon.major, beacon.minor, beacon.accuracy, beacon.proximity, beacon.rssi, beacon.tx);
21+
}
22+
}
23+
24+
function didEnterRegion(pluginResult: BeaconPlugin.PluginResult): void {
25+
var region: BeaconPlugin.Region = new cordova.plugins.locationManager.BeaconRegion("identifier", "uuid", 1, 2);;
26+
cordova.plugins.locationManager.startRangingBeaconsInRegion(this.createBeaconRegionFromPluginResult(pluginResult))
27+
.then(() => {
28+
console.log("startRangingBeaconsInRegion succeeded");
29+
})
30+
.catch((reason: any) => {
31+
console.error("startRangingBeaconsInRegion failed: " + reason);
32+
});
33+
}
34+
35+
function didExitRegion(pluginResult: BeaconPlugin.PluginResult): void {
36+
var region: BeaconPlugin.Region;
37+
cordova.plugins.locationManager.stopRangingBeaconsInRegion(region)
38+
.then(() => {
39+
console.log("stopRangingBeaconsInRegion succeeded");
40+
})
41+
.catch((reason: any) => {
42+
console.error("stopRangingBeaconsInRegion failed: " + reason);
43+
});
44+
}
45+
46+
function didDetermineStateForRegion(pluginResult: BeaconPlugin.PluginResult): void {
47+
if (pluginResult.state === "CLRegionStateInside") {
48+
console.log(pluginResult.region.identifier);
49+
}
50+
}
51+
52+
function didChangeAuthorizationStatus(authorizationStatus: string): void {
53+
console.log(authorizationStatus);
54+
}
55+
56+
function didStartMonitoringForRegion(pluginResult: BeaconPlugin.PluginResult): void {
57+
console.log(pluginResult.region.identifier);
58+
}
59+
60+
function monitoringDidFailForRegionWithError(pluginResult: BeaconPlugin.PluginResult): void {
61+
console.log(pluginResult.region.identifier);
62+
}
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
// Type definitions for cordova-plugin-ibeacon v3.3.0
2+
// Project: https://github.com/petermetz/cordova-plugin-ibeacon
3+
// Definitions by: Markus Wagner <https://github.com/Ritzlgrmft/>
4+
// Definitions: https://github.com/borisyankov/DefinitelyTyped
5+
6+
/// <reference path="../q/Q.d.ts" />
7+
8+
interface CordovaPlugins {
9+
locationManager: BeaconPlugin.LocationManager;
10+
}
11+
12+
declare module BeaconPlugin {
13+
/**
14+
* Beacon Plugin.
15+
*/
16+
export interface LocationManager {
17+
delegate: Delegate;
18+
BeaconRegion: BeaconRegion;
19+
onDomDelegateReady(): void;
20+
startMonitoringForRegion(region: Region): Q.Promise<void>;
21+
stopMonitoringForRegion(region: Region): Q.Promise<void>;
22+
requestStateForRegion(region: Region): Q.Promise<void>;
23+
startRangingBeaconsInRegion(region: Region): Q.Promise<void>;
24+
stopRangingBeaconsInRegion(region: Region): Q.Promise<void>;
25+
getAuthorizationStatus(): Q.Promise<PluginResult>;
26+
requestWhenInUseAuthorization(): Q.Promise<void>;
27+
requestAlwaysAuthorization(): Q.Promise<void>;
28+
getMonitoredRegions(): Q.Promise<Region[]>;
29+
getRangedRegions(): Q.Promise<Region[]>;
30+
isRangingAvailable(): Q.Promise<boolean>;
31+
isMonitoringAvailableForClass(region: Region): Q.Promise<boolean>;
32+
startAdvertising(region: Region, measuredPower: boolean): Q.Promise<void>;
33+
stopAdvertising(): Q.Promise<void>;
34+
isAdvertisingAvailable(): Q.Promise<boolean>;
35+
isAdvertising(): Q.Promise<boolean>;
36+
disableDebugLogs(): Q.Promise<void>;
37+
enableDebugNotifications(): Q.Promise<void>;
38+
disableDebugNotifications(): Q.Promise<void>;
39+
enableDebugLogs(): Q.Promise<void>;
40+
isBluetoothEnabled(): Q.Promise<boolean>;
41+
enableBluetooth(): Q.Promise<void>;
42+
disableBluetooth(): Q.Promise<void>;
43+
appendToDeviceLog(message: string): Q.Promise<string>;
44+
}
45+
46+
export interface PluginResult {
47+
eventType: string;
48+
region: Region;
49+
beacons: Beacon[];
50+
authorizationStatus: string;
51+
state: string;
52+
}
53+
54+
export interface Delegate {
55+
didDetermineStateForRegion(pluginResult: PluginResult): void;
56+
didStartMonitoringForRegion(pluginResult: PluginResult): void;
57+
didExitRegion(pluginResult: PluginResult): void;
58+
didEnterRegion(pluginResult: PluginResult): void;
59+
didRangeBeaconsInRegion(pluginResult: PluginResult): void;
60+
peripheralManagerDidStartAdvertising(pluginResult: PluginResult): void;
61+
peripheralManagerDidUpdateState(pluginResult: PluginResult): void;
62+
didChangeAuthorizationStatus(authorizationStatus: string): void;
63+
monitoringDidFailForRegionWithError(pluginResult: PluginResult): void;
64+
}
65+
66+
export interface Region {
67+
identifier: string;
68+
new (identifier: string): Region;
69+
}
70+
71+
export interface BeaconRegion extends Region {
72+
uuid: string;
73+
major: string;
74+
minor: string;
75+
notifyEntryStateOnDisplay: boolean;
76+
new (identifier: string, uuid: string, major?: number, minor?: number, notifyEntryStateOnDisplay?: boolean): BeaconRegion;
77+
}
78+
79+
export interface CircularRegion extends Region {
80+
latitude: number;
81+
longitude: number;
82+
radius: number;
83+
new (identifier: string, latitude: number, longitude: number, radius: number): CircularRegion;
84+
}
85+
86+
export interface Beacon {
87+
uuid: string;
88+
major: string;
89+
minor: string;
90+
proximity: string;
91+
tx: number;
92+
rssi: number;
93+
accuracy: number;
94+
}
95+
}

0 commit comments

Comments
 (0)