mirror of
https://github.com/danielsogl/awesome-cordova-plugins.git
synced 2025-04-29 22:40:19 +08:00
895 lines
22 KiB
TypeScript
895 lines
22 KiB
TypeScript
import { Injectable } from '@angular/core';
|
|
import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/core';
|
|
import { Observable } from 'rxjs';
|
|
|
|
export enum BackgroundGeolocationLocationCode {
|
|
PERMISSION_DENIED = 1,
|
|
LOCATION_UNAVAILABLE = 2,
|
|
TIMEOUT = 3
|
|
}
|
|
|
|
export enum BackgroundGeolocationNativeProvider {
|
|
gps = 'gps',
|
|
network = 'network',
|
|
passive = 'passive',
|
|
fused = 'fused'
|
|
}
|
|
|
|
export enum BackgroundGeolocationLocationProvider {
|
|
DISTANCE_FILTER_PROVIDER = 0,
|
|
ACTIVITY_PROVIDER = 1,
|
|
RAW_PROVIDER = 2
|
|
}
|
|
|
|
export enum BackgroundGeolocationEvents {
|
|
http_authorization = 'http_authorization', // Triggered when server responded with "<code>401 Unauthorized</code>" to post/sync request.
|
|
abort_requested = 'abort_requested', // Triggered when server responded with "<code>285 Updates Not Required</code>" to post/sync request.
|
|
background = 'background', // Triggered when app entered background state and (not visible to the user).
|
|
foreground = 'foreground', // Triggered when app entered foreground state and (visible to the user).
|
|
authorization = 'authorization', // Triggered when user changes authorization/permissions for the app or toggles location services.
|
|
error = 'error', // Register error listener.
|
|
stop = 'stop', // Triggered when background service has been stopped succesfully.
|
|
start = 'start', // Event is triggered when background service has been started succesfully.
|
|
activity = 'activity', // Register activity monitoring listener.
|
|
stationary = 'stationary', // Register stationary location event listener.
|
|
location = 'location' // Register location event listener.
|
|
}
|
|
|
|
export enum BackgroundGeolocationAuthorizationStatus {
|
|
NOT_AUTHORIZED = 0,
|
|
AUTHORIZED = 1,
|
|
AUTHORIZED_FOREGROUND = 2
|
|
}
|
|
|
|
export enum BackgroundGeolocationLogLevel {
|
|
TRACE = 'TRACE',
|
|
DEBUG = 'DEBUG',
|
|
INFO = 'INFO',
|
|
WARN = 'WARN',
|
|
ERROR = 'ERROR'
|
|
}
|
|
|
|
export interface BackgroundGeolocationLogEntry {
|
|
/** ID of log entry as stored in db. */
|
|
id: number;
|
|
|
|
/** Timestamp in milliseconds since beginning of UNIX epoch. */
|
|
timestamp: number;
|
|
|
|
/** Log level */
|
|
level: BackgroundGeolocationLogLevel;
|
|
|
|
/** Log message */
|
|
message: string;
|
|
|
|
/** Recorded stacktrace. (Android only, on iOS part of message) */
|
|
stackTrace: string;
|
|
}
|
|
|
|
export interface ServiceStatus {
|
|
/** TRUE if service is running. */
|
|
isRunning: boolean;
|
|
|
|
/** TRUE if location services are enabled */
|
|
locationServicesEnabled: boolean;
|
|
|
|
/**
|
|
* Authorization status.
|
|
*
|
|
* Posible values:
|
|
* NOT_AUTHORIZED, AUTHORIZED, AUTHORIZED_FOREGROUND
|
|
*
|
|
* @example
|
|
* if (authorization == BackgroundGeolocation.NOT_AUTHORIZED) {...}
|
|
*/
|
|
authorization: BackgroundGeolocationAuthorizationStatus;
|
|
}
|
|
|
|
export interface BackgroundGeolocation {
|
|
code: BackgroundGeolocationLocationCode;
|
|
message: string;
|
|
}
|
|
|
|
export interface BackgroundGeolocationCurrentPositionConfig {
|
|
timeout: number;
|
|
maximumAge: number;
|
|
enableHighAccuracy: boolean;
|
|
}
|
|
|
|
export interface BackgroundGeolocationResponse {
|
|
/** ID of location as stored in DB (or null) */
|
|
id: number;
|
|
|
|
/**
|
|
* Native provider reponsible for location.
|
|
*
|
|
* Possible values:
|
|
* "gps", "network", "passive" or "fused"
|
|
*/
|
|
provider: BackgroundGeolocationNativeProvider;
|
|
|
|
/** Configured location provider. */
|
|
locationProvider: BackgroundGeolocationLocationProvider;
|
|
|
|
/** UTC time of this fix, in milliseconds since January 1, 1970. */
|
|
time: number;
|
|
|
|
/** Latitude, in degrees. */
|
|
latitude: number;
|
|
|
|
/** Longitude, in degrees. */
|
|
longitude: number;
|
|
|
|
/** Estimated accuracy of this location, in meters. */
|
|
accuracy: number;
|
|
|
|
/**
|
|
* Speed if it is available, in meters/second over ground.
|
|
*
|
|
* Note: Not all providers are capable of providing speed.
|
|
* Typically network providers are not able to do so.
|
|
*/
|
|
speed: number;
|
|
|
|
/** Altitude if available, in meters above the WGS 84 reference ellipsoid. */
|
|
altitude: number;
|
|
|
|
/** Bearing, in degrees. */
|
|
bearing: number;
|
|
|
|
/**
|
|
* True if location was recorded by mock provider. (ANDROID ONLY)
|
|
*
|
|
* Note: this property is not enabled by default!
|
|
* You can enable it "postTemplate" configure option.
|
|
*/
|
|
isFromMockProvider?: boolean;
|
|
|
|
/**
|
|
* True if device has mock locations enabled. (ANDROID ONLY)
|
|
*
|
|
* Note: this property is not enabled by default!
|
|
* You can enable it "postTemplate" configure option.
|
|
*/
|
|
mockLocationsEnabled?: boolean;
|
|
}
|
|
|
|
export interface BackgroundGeolocationConfig {
|
|
/**
|
|
* Set location provider
|
|
*
|
|
* Platform: all
|
|
* Available providers:
|
|
* DISTANCE_FILTER_PROVIDER,
|
|
* ACTIVITY_PROVIDER
|
|
* RAW_PROVIDER
|
|
*
|
|
* @default DISTANCE_FILTER_PROVIDER
|
|
* @example
|
|
* { locationProvider: LocationProvider.RAW_PROVIDER }
|
|
*/
|
|
locationProvider?: number;
|
|
|
|
/**
|
|
* Desired accuracy in meters.
|
|
*
|
|
* Platform: all
|
|
* Provider: all
|
|
* Possible values:
|
|
* HIGH_ACCURACY,
|
|
* MEDIUM_ACCURACY,
|
|
* LOW_ACCURACY,
|
|
* PASSIVE_ACCURACY
|
|
* Note: Accuracy has direct effect on power drain. Lower accuracy = lower power drain.
|
|
*
|
|
* @default MEDIUM_ACCURACY
|
|
* @example
|
|
* { desiredAccuracy: BackgroundGeolocationAccuracy.LOW }
|
|
*/
|
|
desiredAccuracy?: number;
|
|
|
|
/**
|
|
* Stationary radius in meters.
|
|
*
|
|
* When stopped, the minimum distance the device must move beyond the stationary location for aggressive background-tracking to engage.
|
|
* Platform: all
|
|
* Provider: DISTANCE_FILTER
|
|
*
|
|
* @default 50
|
|
*/
|
|
stationaryRadius?: number;
|
|
|
|
/**
|
|
* When enabled, the plugin will emit sounds for life-cycle events of background-geolocation! See debugging sounds table.
|
|
*
|
|
* Platform: all
|
|
* Provider: all
|
|
*
|
|
* @default false
|
|
*/
|
|
debug?: boolean;
|
|
|
|
/**
|
|
* The minimum distance (measured in meters) a device must move horizontally before an update event is generated.
|
|
*
|
|
* Platform: all
|
|
* Provider: DISTANCE_FILTER, RAW
|
|
*
|
|
* @default 500
|
|
* @see {@link https://apple.co/2oHo2CV|Apple docs}
|
|
*/
|
|
distanceFilter?: number;
|
|
|
|
/**
|
|
* Enable this in order to force a stop() when the application terminated.
|
|
* E.g. on iOS, double-tap home button, swipe away the app.
|
|
*
|
|
* Platform: all
|
|
* Provider: all
|
|
*
|
|
* @default true
|
|
*/
|
|
stopOnTerminate?: boolean;
|
|
|
|
/**
|
|
* Start background service on device boot.
|
|
*
|
|
* Platform: Android
|
|
* Provider: all
|
|
*
|
|
* @default false
|
|
*/
|
|
startOnBoot?: boolean;
|
|
|
|
/**
|
|
* The minimum time interval between location updates in milliseconds.
|
|
*
|
|
* Platform: Android
|
|
* Provider: all
|
|
*
|
|
* @default 60000
|
|
* @see {@link https://bit.ly/1x00RUu|Android docs}
|
|
*/
|
|
interval?: number;
|
|
|
|
/**
|
|
* Fastest rate in milliseconds at which your app can handle location updates.
|
|
*
|
|
* Platform: Android
|
|
* Provider: ACTIVITY
|
|
*
|
|
* @default 120000
|
|
* @see {@link https://bit.ly/1x00RUu|Android docs}
|
|
*/
|
|
fastestInterval?: number;
|
|
|
|
/**
|
|
* Rate in milliseconds at which activity recognition occurs.
|
|
* Larger values will result in fewer activity detections while improving battery life.
|
|
*
|
|
* Platform: Android
|
|
* Provider: ACTIVITY
|
|
*
|
|
* @default 10000
|
|
*/
|
|
activitiesInterval?: number;
|
|
|
|
/**
|
|
* @deprecated Stop location updates, when the STILL activity is detected.
|
|
*/
|
|
stopOnStillActivity?: boolean;
|
|
|
|
/**
|
|
* Enable/disable local notifications when tracking and syncing locations.
|
|
*
|
|
* Platform: Android
|
|
* Provider: all
|
|
*
|
|
* @default true
|
|
*/
|
|
notificationsEnabled?: boolean;
|
|
|
|
/**
|
|
* Allow location sync service to run in foreground state.
|
|
* Foreground state also requires a notification to be presented to the user.
|
|
*
|
|
* Platform: Android
|
|
* Provider: all
|
|
*
|
|
* @default false
|
|
*/
|
|
startForeground?: boolean;
|
|
|
|
/**
|
|
* Custom notification title in the drawer.
|
|
*
|
|
* Platform: Android
|
|
* Provider: all
|
|
* @default "Background tracking"
|
|
*/
|
|
notificationTitle?: string;
|
|
|
|
/**
|
|
* Custom notification text in the drawer.
|
|
*
|
|
* Platform: Android
|
|
* Provider: all
|
|
*
|
|
* @default "ENABLED"
|
|
*/
|
|
notificationText?: string;
|
|
|
|
/**
|
|
* The accent color (hex triplet) to use for notification.
|
|
* Eg. <code>#4CAF50</code>.
|
|
*
|
|
* Platform: Android
|
|
* Provider: all
|
|
*/
|
|
notificationIconColor?: string;
|
|
|
|
/**
|
|
* The filename of a custom notification icon.
|
|
*
|
|
* Platform: Android
|
|
* Provider: all
|
|
*/
|
|
notificationIconLarge?: string;
|
|
|
|
/**
|
|
* The filename of a custom notification icon.
|
|
*
|
|
* Platform: Android
|
|
* Provider: all
|
|
*/
|
|
notificationIconSmall?: string;
|
|
|
|
/**
|
|
* Activity type.
|
|
* Presumably, this affects iOS GPS algorithm.
|
|
*
|
|
* Possible values:
|
|
* "AutomotiveNavigation", "OtherNavigation", "Fitness", "Other"
|
|
*
|
|
* Platform: iOS
|
|
* Provider: all
|
|
*
|
|
* @default "OtherNavigation"
|
|
* @see {@link https://apple.co/2oHofpH|Apple docs}
|
|
*/
|
|
activityType?: string;
|
|
|
|
/**
|
|
* Pauses location updates when app is paused.
|
|
*
|
|
* Platform: iOS
|
|
* Provider: all
|
|
*
|
|
* @default false
|
|
* @see {@link https://apple.co/2CbjEW2|Apple docs}
|
|
*/
|
|
pauseLocationUpdates?: boolean;
|
|
|
|
/**
|
|
* Switch to less accurate significant changes and region monitory when in background.
|
|
*
|
|
* Platform: iOS
|
|
* Provider: all
|
|
*
|
|
* @default false
|
|
*/
|
|
saveBatteryOnBackground?: boolean;
|
|
|
|
/**
|
|
* Server url where to send HTTP POST with recorded locations
|
|
*
|
|
* Platform: all
|
|
* Provider: all
|
|
*/
|
|
url?: string;
|
|
|
|
/**
|
|
* Server url where to send fail to post locations
|
|
*
|
|
* Platform: all
|
|
* Provider: all
|
|
*/
|
|
syncUrl?: string;
|
|
|
|
/**
|
|
* Specifies how many previously failed locations will be sent to server at once.
|
|
*
|
|
* Platform: all
|
|
* Provider: all
|
|
*
|
|
* @default 100
|
|
*/
|
|
syncThreshold?: string;
|
|
|
|
/**
|
|
* Optional HTTP headers sent along in HTTP request.
|
|
*
|
|
* Platform: all
|
|
* Provider: all
|
|
*/
|
|
httpHeaders?: any;
|
|
|
|
/**
|
|
* Limit maximum number of locations stored into db.
|
|
*
|
|
* Platform: all
|
|
* Provider: all
|
|
*
|
|
* @default 10000
|
|
*/
|
|
maxLocations?: number;
|
|
|
|
/**
|
|
* Customization post template.
|
|
*
|
|
* Platform: all
|
|
* Provider: all
|
|
*/
|
|
postTemplate?: any;
|
|
}
|
|
|
|
/**
|
|
* Set location service provider @see https://github.com/mauron85/cordova-plugin-background-geolocation/wiki/Android-providers
|
|
*
|
|
* Possible values:
|
|
* ANDROID_DISTANCE_FILTER_PROVIDER: 0,
|
|
* ANDROID_ACTIVITY_PROVIDER: 1
|
|
*
|
|
* @enum {number}
|
|
*/
|
|
export declare enum BackgroundGeolocationProvider {
|
|
ANDROID_DISTANCE_FILTER_PROVIDER = 0,
|
|
ANDROID_ACTIVITY_PROVIDER = 1
|
|
}
|
|
|
|
/**
|
|
* Desired accuracy in meters. Possible values [0, 10, 100, 1000].
|
|
* The lower the number, the more power devoted to GeoLocation resulting in higher accuracy readings.
|
|
* 1000 results in lowest power drain and least accurate readings.
|
|
*
|
|
* Possible values:
|
|
* HIGH: 0
|
|
* MEDIUM: 10
|
|
* LOW: 100
|
|
* PASSIVE: 1000
|
|
*
|
|
* enum {number}
|
|
*/
|
|
export declare enum BackgroundGeolocationAccuracy {
|
|
HIGH = 0,
|
|
MEDIUM = 10,
|
|
LOW = 100,
|
|
PASSIVE = 1000
|
|
}
|
|
|
|
/**
|
|
* Used in the switchMode function
|
|
*
|
|
* Possible values:
|
|
* BACKGROUND: 0
|
|
* FOREGROUND: 1
|
|
*
|
|
* @enum {number}
|
|
*/
|
|
export declare enum BackgroundGeolocationMode {
|
|
BACKGROUND = 0,
|
|
FOREGROUND = 1
|
|
}
|
|
|
|
export declare enum BackgroundGeolocationIOSActivity {
|
|
AutomotiveNavigation = 'AutomotiveNavigation',
|
|
OtherNavigation = 'OtherNavigation',
|
|
Fitness = 'Fitness',
|
|
Other = 'Other'
|
|
}
|
|
|
|
/**
|
|
* @name Background Geolocation
|
|
* @description
|
|
* This plugin provides foreground and background geolocation with battery-saving "circular region monitoring" and "stop detection". For
|
|
* more detail, please see https://github.com/mauron85/cordova-plugin-background-geolocation
|
|
*
|
|
* @usage
|
|
*
|
|
* BackgroundGeolocation must be called within app.ts and or before Geolocation. Otherwise the platform will not ask you for background tracking permission.
|
|
*
|
|
* ```typescript
|
|
* import { BackgroundGeolocation, BackgroundGeolocationConfig, BackgroundGeolocationEvents, BackgroundGeolocationResponse } from '@ionic-native/background-geolocation/ngx';
|
|
*
|
|
* constructor(private backgroundGeolocation: BackgroundGeolocation) { }
|
|
*
|
|
* ...
|
|
*
|
|
* const config: BackgroundGeolocationConfig = {
|
|
* desiredAccuracy: 10,
|
|
* stationaryRadius: 20,
|
|
* distanceFilter: 30,
|
|
* debug: true, // enable this hear sounds for background-geolocation life-cycle.
|
|
* stopOnTerminate: false, // enable this to clear background location settings when the app terminates
|
|
* };
|
|
*
|
|
* this.backgroundGeolocation.configure(config)
|
|
* .then(() => {
|
|
*
|
|
* this.backgroundGeolocation.on(BackgroundGeolocationEvents.location).subscribe((location: BackgroundGeolocationResponse) => {
|
|
* console.log(location);
|
|
*
|
|
* // IMPORTANT: You must execute the finish method here to inform the native plugin that you're finished,
|
|
* // and the background-task may be completed. You must do this regardless if your operations are successful or not.
|
|
* // IF YOU DON'T, ios will CRASH YOUR APP for spending too much time in the background.
|
|
* this.backgroundGeolocation.finish(); // FOR IOS ONLY
|
|
* });
|
|
*
|
|
* });
|
|
*
|
|
* // start recording location
|
|
* this.backgroundGeolocation.start();
|
|
*
|
|
* // If you wish to turn OFF background-tracking, call the #stop method.
|
|
* this.backgroundGeolocation.stop();
|
|
*
|
|
* ```
|
|
* @interfaces
|
|
* BackgroundGeolocationResponse
|
|
* BackgroundGeolocationConfig
|
|
*/
|
|
@Plugin({
|
|
pluginName: 'BackgroundGeolocation',
|
|
plugin: '@mauron85/cordova-plugin-background-geolocation',
|
|
pluginRef: 'BackgroundGeolocation',
|
|
repo: 'https://github.com/mauron85/cordova-plugin-background-geolocation',
|
|
platforms: ['Android', 'iOS']
|
|
})
|
|
@Injectable()
|
|
export class BackgroundGeolocation extends IonicNativePlugin {
|
|
/**
|
|
* Configure the plugin.
|
|
*
|
|
* @param options {BackgroundGeolocationConfig} options An object of type Config
|
|
* @return {Promise<any>}
|
|
*/
|
|
@Cordova()
|
|
configure(options: BackgroundGeolocationConfig): Promise<any> {
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* Turn ON the background-geolocation system.
|
|
* The user will be tracked whenever they suspend the app.
|
|
* @returns {Promise<any>}
|
|
*/
|
|
@Cordova()
|
|
start(): Promise<any> {
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* Turn OFF background-tracking
|
|
* @returns {Promise<any>}
|
|
*/
|
|
@Cordova()
|
|
stop(): Promise<any> {
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* Inform the native plugin that you're finished, the background-task may be completed
|
|
* @returns {Promise<any>}
|
|
*/
|
|
@Cordova({
|
|
platforms: ['iOS']
|
|
})
|
|
finish(): Promise<any> {
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* Force the plugin to enter "moving" or "stationary" state
|
|
* @param isMoving {boolean}
|
|
* @returns {Promise<any>}
|
|
*/
|
|
@Cordova({
|
|
platforms: ['iOS']
|
|
})
|
|
changePace(isMoving: boolean): Promise<any> {
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* Setup configuration
|
|
* @param options {BackgroundGeolocationConfig}
|
|
* @returns {Promise<any>}
|
|
*/
|
|
@Cordova({
|
|
callbackOrder: 'reverse'
|
|
})
|
|
setConfig(options: BackgroundGeolocationConfig): Promise<any> {
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* Returns current stationaryLocation if available. null if not
|
|
* @returns {Promise<Location>}
|
|
*/
|
|
@Cordova({
|
|
platforms: ['iOS']
|
|
})
|
|
getStationaryLocation(): Promise<BackgroundGeolocationResponse> {
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* Add a stationary-region listener. Whenever the devices enters "stationary-mode",
|
|
* your #success callback will be executed with #location param containing #radius of region
|
|
* @returns {Promise<any>}
|
|
*/
|
|
@Cordova({
|
|
platforms: ['iOS']
|
|
})
|
|
onStationary(): Promise<any> {
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* Check if location is enabled on the device
|
|
* @returns {Promise<number>} Returns a promise with int argument that takes values 0, 1 (true).
|
|
*/
|
|
@Cordova({
|
|
platforms: ['Android']
|
|
})
|
|
isLocationEnabled(): Promise<number> {
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* Display app settings to change permissions
|
|
*/
|
|
@Cordova({ sync: true })
|
|
showAppSettings(): void {}
|
|
|
|
/**
|
|
* Display device location settings
|
|
*/
|
|
@Cordova({ sync: true })
|
|
showLocationSettings(): void {}
|
|
|
|
/**
|
|
* Method can be used to detect user changes in location services settings.
|
|
* If user enable or disable location services then success callback will be executed.
|
|
* In case or (SettingNotFoundException) fail callback will be executed.
|
|
* @returns {Observable<number>}
|
|
*/
|
|
@Cordova({
|
|
platforms: ['Android'],
|
|
observable: true
|
|
})
|
|
watchLocationMode(): Observable<number> {
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* Stop watching for location mode changes.
|
|
* @returns {Promise<any>}
|
|
*/
|
|
@Cordova({
|
|
platforms: ['Android']
|
|
})
|
|
stopWatchingLocationMode(): Promise<any> {
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* Method will return all stored locations.
|
|
* Locations are stored when:
|
|
* - config.stopOnTerminate is false and main activity was killed
|
|
* by the system
|
|
* or
|
|
* - option.debug is true
|
|
* @returns {Promise<any>}
|
|
*/
|
|
@Cordova({
|
|
platforms: ['Android']
|
|
})
|
|
getLocations(): Promise<any> {
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* Method will return locations, which has not been yet posted to server. NOTE: Locations does contain locationId.
|
|
* @returns {Promise<any>}
|
|
*/
|
|
@Cordova()
|
|
getValidLocations(): Promise<any> {
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* Delete stored location by given locationId.
|
|
* @param locationId {number}
|
|
* @returns {Promise<any>}
|
|
*/
|
|
@Cordova({
|
|
platforms: ['Android']
|
|
})
|
|
deleteLocation(locationId: number): Promise<any> {
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* Delete all stored locations.
|
|
* @returns {Promise<any>}
|
|
*/
|
|
@Cordova({
|
|
platforms: ['Android']
|
|
})
|
|
deleteAllLocations(): Promise<any> {
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* Normally plugin will handle switching between BACKGROUND and FOREGROUND mode itself.
|
|
* Calling switchMode you can override plugin behavior and force plugin to switch into other mode.
|
|
*
|
|
* In FOREGROUND mode plugin uses iOS local manager to receive locations and behavior is affected by option.desiredAccuracy and option.distanceFilter.
|
|
* In BACKGROUND mode plugin uses significant changes and region monitoring to receive locations and uses option.stationaryRadius only.
|
|
*
|
|
* BackgroundGeolocation.Mode.FOREGROUND
|
|
* BackgroundGeolocation.Mode.BACKGROUND
|
|
*
|
|
* @param modeId {number}
|
|
* @returns {Promise<any>}
|
|
*/
|
|
@Cordova({
|
|
platforms: ['iOS']
|
|
})
|
|
switchMode(modeId: number): Promise<any> {
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* Return all logged events. Useful for plugin debugging. Parameter limit limits number of returned entries.
|
|
* @see https://github.com/mauron85/cordova-plugin-background-geolocation/tree/v2.2.1#debugging for more information.
|
|
*
|
|
* @param limit {number} Limits the number of entries
|
|
* @returns {Promise<any>}
|
|
*/
|
|
@Cordova()
|
|
getLogEntries(
|
|
limit: number,
|
|
fromId: number,
|
|
minLevel: BackgroundGeolocationLogLevel
|
|
): Promise<BackgroundGeolocationLogEntry[]> {
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* Return all logged events. Useful for plugin debugging. Parameter limit limits number of returned entries.
|
|
* @see https://github.com/mauron85/cordova-plugin-background-geolocation/tree/v2.2.1#debugging for more information.
|
|
*
|
|
* @returns {Promise<any>}
|
|
*/
|
|
@Cordova()
|
|
getConfig(): Promise<any> {
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* One time location check to get current location of the device.
|
|
* {timeout: Maximum time in milliseconds device will wait for location,
|
|
* maximumAge: Maximum age in milliseconds of a possible cached location that is acceptable to return;
|
|
* enableHighAccuracy: if true and if the device is able to provide a more accurate position, it will do so}
|
|
*
|
|
* @param {BackgroundGeolocationCurrentPositionConfig} options
|
|
* @returns {Promise<any>}
|
|
*/
|
|
@Cordova({
|
|
callbackOrder: 'reverse'
|
|
})
|
|
getCurrentLocation(
|
|
options?: BackgroundGeolocationCurrentPositionConfig
|
|
): Promise<BackgroundGeolocationResponse> {
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* Check status of the service
|
|
*/
|
|
@Cordova()
|
|
checkStatus(): Promise<ServiceStatus> {
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* Start background task (iOS only)
|
|
*
|
|
* To perform any long running operation on iOS
|
|
* you need to create background task
|
|
* IMPORTANT: task has to be ended by endTask
|
|
*
|
|
* @returns {Promise<number>} taskKey
|
|
*/
|
|
@Cordova({
|
|
platforms: ['IOS']
|
|
})
|
|
startTask(): Promise<number> {
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* End background task indentified by taskKey (iOS only)
|
|
*/
|
|
@Cordova({
|
|
platforms: ['IOS']
|
|
})
|
|
endTask(taskKey: number): Promise<any> {
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* A special task that gets executed when the app is terminated, but
|
|
* the plugin was configured to continue running in the background
|
|
* (option <code>stopOnTerminate: false</code>).
|
|
*
|
|
* In this scenario the Activity was killed by the system and all registered
|
|
* event listeners will not be triggered until the app is relaunched.
|
|
*
|
|
* @example
|
|
* BackgroundGeolocation.headlessTask(function(event) {
|
|
*
|
|
* if (event.name === 'location' || event.name === 'stationary') {
|
|
* var xhr = new XMLHttpRequest();
|
|
* xhr.open('POST', 'http://192.168.81.14:3000/headless');
|
|
* xhr.setRequestHeader('Content-Type', 'application/json');
|
|
* xhr.send(JSON.stringify(event.params));
|
|
* }
|
|
*
|
|
* return 'Processing event: ' + event.name; // will be logged
|
|
* });
|
|
* @param func
|
|
*/
|
|
@Cordova()
|
|
headlessTask(func: any): Promise<any> {
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* Force sync of pending locations.
|
|
* Option <code>syncThreshold</code> will be ignored and all pending locations will be immediately posted to <code>syncUrl</code> in single batch.
|
|
*
|
|
* Platform: Android, iOS
|
|
*/
|
|
@Cordova()
|
|
forceSync(): Promise<any> {
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* Register event listener.
|
|
*
|
|
* Triggered when server responded with "<code>285 Updates Not Required</code>" to post/sync request.
|
|
* @param event
|
|
* @param callbackFn
|
|
*/
|
|
@Cordova({
|
|
observable: true
|
|
})
|
|
on(event: BackgroundGeolocationEvents): Observable<BackgroundGeolocationResponse> {
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* Unregister all event listeners for given event.
|
|
*
|
|
* If parameter <code>event</code> is not provided then all event listeners will be removed.
|
|
*/
|
|
@Cordova()
|
|
removeAllListeners(event?: BackgroundGeolocationEvents): Promise<any> {
|
|
return;
|
|
}
|
|
}
|