(后臺(tái)地理位置)Background Geolocation

Background Geolocation

此插件提供在前臺(tái)和后臺(tái)以省電“圓形區(qū)域監(jiān)視”和“停止檢測(cè)”獲取地理位置拗秘。 有關(guān)詳細(xì)信息栗恩,請(qǐng)參閱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(支持平臺(tái))

Android
iOS

Usage(用法)

必須在app.ts內(nèi)或Geolocation之前調(diào)用BackgroundGeolocation。 否則,平臺(tái)不會(huì)要求您提供后臺(tái)跟蹤權(quán)限。

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(實(shí)例成員)

LocationProvider

設(shè)置提供地理位置服務(wù) @參照 https://github.com/mauron85/cordova-plugin-background-geolocation/wiki/Android-providers
可能的值: ANDROID_DISTANCE_FILTER_PROVIDER: 0, ANDROID_ACTIVITY_PROVIDER: 1

Accuracy

所需精度以米計(jì)锌仅。 可能的值[0,10墙贱,100热芹,1000]。 數(shù)字越小惨撇,GeoLocation的功率越多伊脓,導(dǎo)致讀數(shù)越高。 1000導(dǎo)致最低的功耗和最不精確的讀數(shù)魁衙。
可能的值:HIGH:0 MEDIUM:10 LOW:100 PASSIVE:1000

enum {number}

Mode

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

configure(options)

配置這個(gè)插件.

參數(shù) 類型 詳情
options BackgroundGeolocationConfig Config選項(xiàng)類型的對(duì)象

****Returns:** Observable<BackgroundGeolocationResponse>

start()

打開(kāi)后臺(tái)地理位置系統(tǒng)报腔。 每當(dāng)掛起應(yīng)用程序時(shí),用戶將被跟蹤剖淀。
****Returns:** Promise<any>

stop()

停止后臺(tái)地理位置系統(tǒng)
****Returns:** Promise<any>

finish()

Platforms:****IOS WINDOWS PHONE
通知原生插件已完成纯蛾,后臺(tái)任務(wù)可能已完成
****Returns:** Promise<any>

changePace(isMoving)

Platforms:****IOS WINDOWS PHONE
強(qiáng)制插件進(jìn)入“移動(dòng)”或“靜止”狀態(tài)

參數(shù) 類型 詳情
isMoving boolean

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

setConfig(options)

設(shè)置配置

參數(shù) 類型 詳情
options BackgroundGeolocationConfig

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

getStationaryLocation()

Platforms:****IOS WINDOWS PHONE
返回當(dāng)前的fixedLocation(如果可用)纵隔。 如果沒(méi)有則為null
****Returns:** Promise<Location>

onStationary()

Platforms:****IOS WINDOWS PHONE
添加一個(gè)靜止區(qū)域監(jiān)聽(tīng)器翻诉。 每當(dāng)設(shè)備進(jìn)入“固定模式”時(shí),#success回調(diào)將執(zhí)行#location param捌刮,其中包含#radius的區(qū)域
****Returns:** Promise<any>

isLocationEnabled()

Platforms:****ANDROID
檢查設(shè)備上是否啟用了位置
****Returns:** Promise<number>
返回一個(gè)使用int參數(shù)的promise碰煌,取值為0,1(true)绅作。

showAppSettings()

顯示應(yīng)用設(shè)置來(lái)更改權(quán)限

showLocationSettings()

顯示設(shè)備位置設(shè)置

watchLocationMode()

Platforms:****ANDROID
方法可用于檢測(cè)用戶位置服務(wù)設(shè)置的變化芦圾。 如果用戶啟用或禁用位置服務(wù),則將執(zhí)行成功回調(diào)俄认。 如果發(fā)生錯(cuò)誤(SettingNotFoundException)个少,則將執(zhí)行回調(diào)碍脏。
****Returns:** Promise<boolean>

stopWatchingLocationMode()

Platforms:****ANDROID
停止監(jiān)測(cè)位置模式更改。
****Returns:** Promise<any>

getLocations()

Platforms:****ANDROID
方法將返回所有存儲(chǔ)的位置稍算。 當(dāng)?shù)攸c(diǎn)存儲(chǔ)時(shí):

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

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

getValidLocations()

方法將返回尚未發(fā)布到服務(wù)器的位置。 注意:位置確實(shí)包含locationId役拴。
****Returns:** Promise<any>

deleteLocation(locationId)

Platforms:****ANDROID
通過(guò)給定的locationId刪除存儲(chǔ)的位置糊探。

參數(shù) 類型 詳情
locationId number

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

deleteAllLocations()

Platforms:****ANDROID
刪除所有存儲(chǔ)的位置。
****Returns:** Promise<any>

switchMode(modeId)

Platforms:****IOS
通常插件將處理BACKGROUND和FOREGROUND模式之間的切換河闰。 調(diào)用switchMode可以覆蓋插件行為科平,并強(qiáng)制插件切換到其他模式。
在FOREGROUND模式下姜性,插件使用iOS本地管理器接收位置和行為受option.desiredAccuracy和option.distanceFilter的影響瞪慧。
在BACKGROUND 模式中,插件使用重大更改和區(qū)域監(jiān)視來(lái)接收位置部念,并使用option.stationaryRadius弃酌。
BackgroundGeolocation.Mode.FOREGROUND BackgroundGeolocation.Mode.BACKGROUND *

參數(shù) 類型 詳情
modeId number

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

getLogEntries()

返回所有記錄的事件。 適用于插件調(diào)試儡炼。 參數(shù)限制返回條目數(shù)妓湘。 @更多信息參見(jiàn)https://github.com/mauron85/cordova-plugin-background-geolocation/tree/v2.2.1#debugging
@param limit {number} 限制條目數(shù)量
****Returns:** Promise<any>

BackgroundGeolocationResponse

參數(shù) 類型 詳情
locationId number 存儲(chǔ)在DB中的位置ID(或null)
serviceProvider string 提供服務(wù)
debug boolean 如果為true位置記錄為調(diào)試的一部分
time number 這個(gè)規(guī)定的UTC時(shí)間,從1970年1月1日以來(lái)的毫秒乌询。
latitude number 緯度榜贴,以度為單位。
longitude number 經(jīng)度妹田,度數(shù)唬党。
accuracy number 這個(gè)位置的估計(jì)精確度,以米為單位鬼佣。
speed number 速度驶拱,如果有的話,以米/秒為單位沮趣。
altitude number 海拔是否可用屯烦,以米為單位的WGS84參考橢球。
altitudeAccuracy number 海拔高度的準(zhǔn)確度房铭。
bearing number 軸承驻龟,以度為單位。
coords Coordinates 定義當(dāng)前位置的坐標(biāo)對(duì)象
timestamp number 表示檢索位置的時(shí)間的時(shí)間戳缸匪。

BackgroundGeolocationConfig

參數(shù) 類型 詳情
desiredAccuracy number 所需精度以米計(jì)翁狐。 可能的值[0,10凌蔬,100露懒,1000]闯冷。 數(shù)字越小,GeoLocation的功率越多懈词,導(dǎo)致讀數(shù)越高蛇耀。 1000導(dǎo)致最低的功耗和最不精確的讀數(shù)。@請(qǐng)參閱蘋果文檔(https://developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLLocationManager_Class/index.html#//apple_ref/occ/instp/CLLocationManager/desiredAccuracy)
stationaryRadius number 固定半徑(米)坎弯。 當(dāng)停止時(shí)纺涤,設(shè)備必須移動(dòng)超過(guò)固定位置的最小距離,以進(jìn)行有效的后臺(tái)跟蹤抠忘。
debug boolean 啟用后撩炊,插件會(huì)發(fā)出背景地理位置的生命周期事件的聲音! 參見(jiàn)調(diào)試聲音表崎脉。(可選)
distanceFilter number 在生成更新事件之前拧咳,設(shè)備的最小距離(以米為單位)必須水平移動(dòng)。 @請(qǐng)參閱蘋果文檔. (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啟用此功能以在應(yīng)用程序終止時(shí)強(qiáng)制停止(例如骆膝,在iOS上,雙擊Home按鈕啦撮,滑開(kāi)應(yīng)用程序).默認(rèn)為true (可選)
starOnBoot boolean ANDROID ONLY在設(shè)備啟動(dòng)時(shí)啟動(dòng)后臺(tái)服務(wù)谭网。 默認(rèn)為false(可選)
startForeground boolean ANDROID ONLY如果為false位置服務(wù)不會(huì)在前臺(tái)啟動(dòng),并且不會(huì)顯示任何通知赃春。默認(rèn)為true (可選)
interval number ANDROID愉择,WP8 ONLY當(dāng)使用BackgroundGeolocation.LocationProvider.ANDROID_DISTANCE_FILTER_PROVIDER:位置更新之間的最小時(shí)間間隔(以毫秒為單位)(可選)
notificationTitle string ANDROID ONLY抽屜中的自定義通知標(biāo)題(可選)
notificationText string ANDROID ONLY抽屜中的自定義通知文本(可選)
notificationIconColor string ANDROID ONLY用于通知的重音顏色。 例如织中。#4CAF50锥涕。(可選)
notificationIconLarge string ANDROID ONLY自定義通知圖標(biāo)的文件名。 看到android quirks狭吼。 注意:僅適用于API Level> = 21层坠。(可選)
notificationIconSmall string ANDROID ONLY自定義通知圖標(biāo)的文件名。 看到android quirks刁笙。 注意:僅適用于API Level> = 21破花。(可選)
locationProvider number ANDROID ONLY設(shè)置位置服務(wù)提供商@參見(jiàn) wiki (https://github.com/mauron85/cordova-plugin-background-geolocation/wiki/Android-providers)(optional)
activityType string IOS ONLY [AutomotiveNavigation, OtherNavigation, Fitness, Other]想必只有這些會(huì)影響IOS GPS算法 . @參見(jiàn)蘋果文(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暫停應(yīng)用程序暫停時(shí)的位置更新默認(rèn)為true (可選)
url string 服務(wù)器URL,發(fā)送帶有記錄位置的HTTP POST (可選)
syncUrl string 服務(wù)器URL疲吸,發(fā)送不能獲取位置的POST(可選)
syncThreshold number 指定將一次發(fā)送到服務(wù)器的以前失敗的位置數(shù)量 默認(rèn)為100 (可選)
httpHeaders any HTTP請(qǐng)求中發(fā)送的可選HTTP標(biāo)頭(可選)
saveBatteryOnBackground boolean IOS ONLY在后臺(tái)切換到不太準(zhǔn)確的顯示變化和區(qū)域監(jiān)控座每,默認(rèn)為100 (可選)
maxLocations number 限制存儲(chǔ)在db中的最大位數(shù)默認(rèn)值為10000 (可選)
fastestInterval number ANDROID ONLY與BackgroundGeolocation.LocationProvider.ANDROID_ACTIVITY_PROVIDER您的應(yīng)用可以處理位置更新的最快速度(以毫秒為單位)。(可選的)
activitiesInterval number ANDROID ONLY與BackgroundGeolocation.LocationProvider.ANDROID_ACTIVITY_PROVIDER以毫秒為單位進(jìn)行活動(dòng)識(shí)別發(fā)生的速率摘悴。 更大的值將導(dǎo)致更少的活動(dòng)檢測(cè)峭梳,同時(shí)提高電池壽命(可選)
stopOnStillActivity boolean ANDROID ONLY與BackgroundGeolocation.LocationProvider.ANDROID_ACTIVITY_PROVIDER stop()被制止,當(dāng)檢測(cè)到STILL活動(dòng)(默認(rèn)為true)(可選的)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蹂喻,一起剝皮案震驚了整個(gè)濱河市葱椭,隨后出現(xiàn)的幾起案子捂寿,更是在濱河造成了極大的恐慌,老刑警劉巖孵运,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件秦陋,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡治笨,警方通過(guò)查閱死者的電腦和手機(jī)踱侣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)大磺,“玉大人,你說(shuō)我怎么就攤上這事探膊「芾ⅲ” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵逞壁,是天一觀的道長(zhǎng)流济。 經(jīng)常有香客問(wèn)我,道長(zhǎng)腌闯,這世上最難降的妖魔是什么绳瘟? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮姿骏,結(jié)果婚禮上糖声,老公的妹妹穿的比我還像新娘。我一直安慰自己分瘦,他們只是感情好蘸泻,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著嘲玫,像睡著了一般悦施。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上去团,一...
    開(kāi)封第一講書(shū)人閱讀 51,370評(píng)論 1 302
  • 那天抡诞,我揣著相機(jī)與錄音,去河邊找鬼土陪。 笑死昼汗,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的旺坠。 我是一名探鬼主播乔遮,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼取刃!你這毒婦竟也來(lái)了蹋肮?” 一聲冷哼從身側(cè)響起出刷,我...
    開(kāi)封第一講書(shū)人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎坯辩,沒(méi)想到半個(gè)月后馁龟,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡漆魔,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年坷檩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片改抡。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡矢炼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出阿纤,到底是詐尸還是另有隱情句灌,我是刑警寧澤风喇,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布沃饶,位于F島的核電站,受9級(jí)特大地震影響芹血,放射性物質(zhì)發(fā)生泄漏藐窄。R本人自食惡果不足惜资昧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望荆忍。 院中可真熱鬧格带,春花似錦、人聲如沸刹枉。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)嘶卧。三九已至尔觉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間芥吟,已是汗流浹背侦铜。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留钟鸵,地道東北人钉稍。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像棺耍,于是被迫代替她去往敵國(guó)和親贡未。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,116評(píng)論 25 707
  • 前言:用cordova開(kāi)發(fā)hybrid app的過(guò)程中,由于是html5開(kāi)發(fā)的app俊卤,在手機(jī)上很多權(quán)限受限制...
    京東內(nèi)部?jī)?yōu)惠券閱讀 5,373評(píng)論 5 65
  • 前幾天看到一篇關(guān)于寫“貴人”的文章嫩挤,很贊同文章的觀點(diǎn)。 這里的貴人是指能幫助你的人消恍,提拔你的人岂昭,為了準(zhǔn)確的表述,我...
    蘇步哲閱讀 1,053評(píng)論 0 1
  • 我從成都回來(lái)以后狠怨,我開(kāi)始想我以后怎么辦约啊,但是我無(wú)論想多久也不知道自己想干什么。過(guò)了幾天我哥說(shuō)貴陽(yáng)有一個(gè)私人學(xué)校佣赖,應(yīng)...
    草莓哥閱讀 275評(píng)論 0 0
  • 白天的光亮偃旗息鼓天色漸漸暗了下來(lái)籠罩著廢棄的房子 三五個(gè)人 夜沉沉的壓著一切都悶悶的發(fā)不出聲音安靜的像是只剩下那...
    攝影師安在閱讀 234評(píng)論 0 1