(后台地理位置)Background Geolocation

Background Geolocation

此插件提供在前台和后台以省电“圆形区域监视”和“停止检测”获取地理位置。 有关详细信息,请参阅https://github.com/mauron85/cordova-plugin-background-geolocation
Repo(备用): https://github.com/mauron85/cordova-plugin-background-geolocation

Installation(安装)

1.安装Cordova和Ionic插件:

$ ionic cordova plugin add cordova-plugin-mauron85-background-geolocation
$ npm install --save @ionic-native/background-geolocation

2.添加插件到app's module

Supported platforms(支持平台)

Android
iOS

Usage(用法)

必须在app.ts内或Geolocation之前调用BackgroundGeolocation。 否则,平台不会要求您提供后台跟踪权限。

import { BackgroundGeolocation, BackgroundGeolocationConfig } from '@ionic-native/background-geolocation';

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)
  .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 HTTP request is 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();

Instance Members(实例成员)

LocationProvider

设置提供地理位置服务 @参照 https://github.com/mauron85/cordova-plugin-background-geolocation/wiki/Android-providers
可能的值: ANDROID_DISTANCE_FILTER_PROVIDER: 0, ANDROID_ACTIVITY_PROVIDER: 1

Accuracy

所需精度以米计。 可能的值[0,10,100,1000]。 数字越小,GeoLocation的功率越多,导致读数越高。 1000导致最低的功耗和最不精确的读数。
可能的值:HIGH:0 MEDIUM:10 LOW:100 PASSIVE:1000

enum {number}

Mode

用于switchMode功能
可能的值: BACKGROUND: 0 FOREGROUND: 1

configure(options)

配置这个插件.

参数 类型 详情
options BackgroundGeolocationConfig Config选项类型的对象

****Returns:** Observable

start()

打开后台地理位置系统。 每当挂起应用程序时,用户将被跟踪。
****Returns:** Promise

stop()

停止后台地理位置系统
****Returns:** Promise

finish()

Platforms:****IOS WINDOWS PHONE
通知原生插件已完成,后台任务可能已完成
****Returns:** Promise

changePace(isMoving)

Platforms:****IOS WINDOWS PHONE
强制插件进入“移动”或“静止”状态

参数 类型 详情
isMoving boolean

****Returns:** Promise

setConfig(options)

设置配置

参数 类型 详情
options BackgroundGeolocationConfig

****Returns:** Promise

getStationaryLocation()

Platforms:****IOS WINDOWS PHONE
返回当前的fixedLocation(如果可用)。 如果没有则为null
****Returns:** Promise

onStationary()

Platforms:****IOS WINDOWS PHONE
添加一个静止区域监听器。 每当设备进入“固定模式”时,#success回调将执行#location param,其中包含#radius的区域
****Returns:** Promise

isLocationEnabled()

Platforms:****ANDROID
检查设备上是否启用了位置
****Returns:** Promise
返回一个使用int参数的promise,取值为0,1(true)。

showAppSettings()

显示应用设置来更改权限

showLocationSettings()

显示设备位置设置

watchLocationMode()

Platforms:****ANDROID
方法可用于检测用户位置服务设置的变化。 如果用户启用或禁用位置服务,则将执行成功回调。 如果发生错误(SettingNotFoundException),则将执行回调。
****Returns:** Promise

stopWatchingLocationMode()

Platforms:****ANDROID
停止监测位置模式更改。
****Returns:** Promise

getLocations()

Platforms:****ANDROID
方法将返回所有存储的位置。 当地点存储时:

config.stopOnTerminate is false and main activity was killed by the system or
option.debug is true

****Returns:** Promise

getValidLocations()

方法将返回尚未发布到服务器的位置。 注意:位置确实包含locationId。
****Returns:** Promise

deleteLocation(locationId)

Platforms:****ANDROID
通过给定的locationId删除存储的位置。

参数 类型 详情
locationId number

****Returns:** Promise

deleteAllLocations()

Platforms:****ANDROID
删除所有存储的位置。
****Returns:** Promise

switchMode(modeId)

Platforms:****IOS
通常插件将处理BACKGROUND和FOREGROUND模式之间的切换。 调用switchMode可以覆盖插件行为,并强制插件切换到其他模式。
在FOREGROUND模式下,插件使用iOS本地管理器接收位置和行为受option.desiredAccuracy和option.distanceFilter的影响。
在BACKGROUND 模式中,插件使用重大更改和区域监视来接收位置,并使用option.stationaryRadius。
BackgroundGeolocation.Mode.FOREGROUND BackgroundGeolocation.Mode.BACKGROUND *

参数 类型 详情
modeId number

****Returns:** Promise

getLogEntries()

返回所有记录的事件。 适用于插件调试。 参数限制返回条目数。 @更多信息参见https://github.com/mauron85/cordova-plugin-background-geolocation/tree/v2.2.1#debugging
@param limit {number} 限制条目数量
****Returns:** Promise

BackgroundGeolocationResponse

参数 类型 详情
locationId number 存储在DB中的位置ID(或null)
serviceProvider string 提供服务
debug boolean 如果为true位置记录为调试的一部分
time number 这个规定的UTC时间,从1970年1月1日以来的毫秒。
latitude number 纬度,以度为单位。
longitude number 经度,度数。
accuracy number 这个位置的估计精确度,以米为单位。
speed number 速度,如果有的话,以米/秒为单位。
altitude number 海拔是否可用,以米为单位的WGS84参考椭球。
altitudeAccuracy number 海拔高度的准确度。
bearing number 轴承,以度为单位。
coords Coordinates 定义当前位置的坐标对象
timestamp number 表示检索位置的时间的时间戳。

BackgroundGeolocationConfig

参数 类型 详情
desiredAccuracy number 所需精度以米计。 可能的值[0,10,100,1000]。 数字越小,GeoLocation的功率越多,导致读数越高。 1000导致最低的功耗和最不精确的读数。@请参阅苹果文档(https://developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLLocationManager_Class/index.html#//apple_ref/occ/instp/CLLocationManager/desiredAccuracy)
stationaryRadius number 固定半径(米)。 当停止时,设备必须移动超过固定位置的最小距离,以进行有效的后台跟踪。
debug boolean 启用后,插件会发出背景地理位置的生命周期事件的声音! 参见调试声音表。(可选)
distanceFilter number 在生成更新事件之前,设备的最小距离(以米为单位)必须水平移动。 @请参阅苹果文档. (https://developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLLocationManager_Class/CLLocationManager/CLLocationManager.html#//apple_ref/occ/instp/CLLocationManager/distanceFilter)
stopOnTerminate boolean IOS,ANDROID ONLY启用此功能以在应用程序终止时强制停止(例如,在iOS上,双击Home按钮,滑开应用程序).默认为true (可选)
starOnBoot boolean ANDROID ONLY在设备启动时启动后台服务。 默认为false(可选)
startForeground boolean ANDROID ONLY如果为false位置服务不会在前台启动,并且不会显示任何通知。默认为true (可选)
interval number ANDROID,WP8 ONLY当使用BackgroundGeolocation.LocationProvider.ANDROID_DISTANCE_FILTER_PROVIDER:位置更新之间的最小时间间隔(以毫秒为单位)(可选)
notificationTitle string ANDROID ONLY抽屉中的自定义通知标题(可选)
notificationText string ANDROID ONLY抽屉中的自定义通知文本(可选)
notificationIconColor string ANDROID ONLY用于通知的重音颜色。 例如。#4CAF50。(可选)
notificationIconLarge string ANDROID ONLY自定义通知图标的文件名。 看到android quirks。 注意:仅适用于API Level> = 21。(可选)
notificationIconSmall string ANDROID ONLY自定义通知图标的文件名。 看到android quirks。 注意:仅适用于API Level> = 21。(可选)
locationProvider number ANDROID ONLY设置位置服务提供商@参见 wiki (https://github.com/mauron85/cordova-plugin-background-geolocation/wiki/Android-providers)(optional)
activityType string IOS ONLY [AutomotiveNavigation, OtherNavigation, Fitness, Other]想必只有这些会影响IOS GPS算法 . @参见苹果文(https://developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLLocationManager_Class/CLLocationManager/CLLocationManager.html#//apple_ref/occ/instp/CLLocationManager/activityType)(optional)
pauseLocationUpdates boolean IOS ONLY暂停应用程序暂停时的位置更新默认为true (可选)
url string 服务器URL,发送带有记录位置的HTTP POST (可选)
syncUrl string 服务器URL,发送不能获取位置的POST(可选)
syncThreshold number 指定将一次发送到服务器的以前失败的位置数量 默认为100 (可选)
httpHeaders any HTTP请求中发送的可选HTTP标头(可选)
saveBatteryOnBackground boolean IOS ONLY在后台切换到不太准确的显示变化和区域监控,默认为100 (可选)
maxLocations number 限制存储在db中的最大位数默认值为10000 (可选)
fastestInterval number ANDROID ONLY与BackgroundGeolocation.LocationProvider.ANDROID_ACTIVITY_PROVIDER您的应用可以处理位置更新的最快速度(以毫秒为单位)。(可选的)
activitiesInterval number ANDROID ONLY与BackgroundGeolocation.LocationProvider.ANDROID_ACTIVITY_PROVIDER以毫秒为单位进行活动识别发生的速率。 更大的值将导致更少的活动检测,同时提高电池寿命(可选)
stopOnStillActivity boolean ANDROID ONLY与BackgroundGeolocation.LocationProvider.ANDROID_ACTIVITY_PROVIDER stop()被制止,当检测到STILL活动(默认为true)(可选的)

你可能感兴趣的:((后台地理位置)Background Geolocation)