(后台地理位置)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<BackgroundGeolocationResponse>

start()

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

stop()

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

finish()

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

changePace(isMoving)

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

参数 类型 详情
isMoving boolean

****Returns:** Promise<any>

setConfig(options)

设置配置

参数 类型 详情
options BackgroundGeolocationConfig

****Returns:** Promise<any>

getStationaryLocation()

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

onStationary()

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

isLocationEnabled()

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

showAppSettings()

显示应用设置来更改权限

showLocationSettings()

显示设备位置设置

watchLocationMode()

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

stopWatchingLocationMode()

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

getLocations()

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

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

****Returns:** Promise<any>

getValidLocations()

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

deleteLocation(locationId)

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

参数 类型 详情
locationId number

****Returns:** Promise<any>

deleteAllLocations()

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

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<any>

getLogEntries()

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

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)(可选的)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,398评论 25 707
  • 前言:用cordova开发hybrid app的过程中,由于是html5开发的app,在手机上很多权限受限制...
    京东内部优惠券阅读 5,331评论 5 65
  • 前几天看到一篇关于写“贵人”的文章,很赞同文章的观点。 这里的贵人是指能帮助你的人,提拔你的人,为了准确的表述,我...
    苏步哲阅读 1,036评论 0 1
  • 我从成都回来以后,我开始想我以后怎么办,但是我无论想多久也不知道自己想干什么。过了几天我哥说贵阳有一个私人学校,应...
    草莓哥阅读 267评论 0 0
  • 白天的光亮偃旗息鼓天色渐渐暗了下来笼罩着废弃的房子 三五个人 夜沉沉的压着一切都闷闷的发不出声音安静的像是只剩下那...
    摄影师安在阅读 229评论 0 1