diff --git a/README.md b/README.md index 396d321..6c967c3 100644 --- a/README.md +++ b/README.md @@ -38,48 +38,63 @@ 2.22 Toolbar ####3. Nativo -3.1 [ActionSheet](chapters/03-nativo/3a-actionSheet.md) -3.2 [AppAvailability](chapters/03-nativo/3b-appAvailability.md) -3.3 [AppRate](chapters/03-nativo/3c-appRate.md) -3.4 [AppVersion](chapters/03-nativo/3d-appVersion.md) -3.5 Badge -3.6 BarCodeScanner -3.7 [Base64ToGallery](chapters/03-nativo/3g-base64togallery.md) -3.8 [BatteryStatus](chapters/03-nativo/3h-batteryStatus.md) -3.9 BLE -3.10 Calendar -3.11 Camera -3.12 Clipboard -3.13 Connection -3.14 Contats -3.15 DatePicker -3.16 DBMeter -3.17 Device -3.18 DeviceMotion -3.19 DeviceOrientation -3.20 Dialogs -3.21 Facebook -3.22 File -3.23 Flashlight -3.24 [Geolocation](chapters/03-nativo/3w-geolocation.md) -3.25 Globalization -3.27 [Google Maps](chapters/03-nativo/3za-googleMaps.md) -3.26 Hotspot -3.27 ImagePicker -3.28 InAppBrowser -3.29 Keyboard -3.30 LaunchNavigator -3.31 LocalNotifications -3.32 Network -3.33 [Push](chapters/03-nativo/3v-push.md) -3.34 SMS -3.35 SocialSharing -3.36 SpinnerDialog -3.37 SplashScreen -3.38 StatusBar -3.39 Toast -3.40 TouchID -3.41 Vibration +3.1 > [ActionSheet](3a-actionSheet.md) +3.2 > [AppAvailability](3b-appAvailability.md) +3.3 > [AppRate](3c-appRate.md) +3.4 > [AppVersion](3d-appVersion.md) +3.5 > Badge +3.6 > BarCodeScanner +3.7 > [Base64ToGallery](3g-base64togallery.md) +3.8 > [BatteryStatus](3h-batteryStatus.md) +3.9 > BLE +3.10 > Calendar +3.11 > Camera +3.12 > Clipboard +3.13 > Connection +3.14 > Contats +3.15 > DatePicker +3.16 > DBMeter +3.17 > Device +3.18 > DeviceMotion +3.19 > DeviceOrientation +3.20 > Dialogs +3.21 > Facebook +3.22 > File +3.23 > Flashlight +3.24 > [Geolocation](3w-geolocation.md) +3.25 > [Globalization](325-globalization.md) +3.26 > [Google Analytics](326-analytics.md) +3.27 > [Google Maps](3za-googleMaps.md) +3.28 > Google Plus +3.29 > [Hotspot](329-hotspot.md) +3.30 > Httpd +3.31 > IBeacon +3.32 > [ImagePicker](332-imagepicker.md) +3.33 > [InAppBrowser](333-inappbrowser.md) +3.34 > Ionic Deeplinks +3.35 > Keyboard +3.36 > Launch Navigator +3.37 > Local Notifications +3.38 > MediaError +3.39 > MediaPlugin +3.40 > Network +3.41 > OneSignal +3.42 > Printer +3.43 > [Push](3v-push.md) +3.44 > SafariViewController +3.45 > Screenshot +3.46 > SMS +3.47 > Social Sharing +3.48 > Spinner Dialog +3.49 > SplashScreen +3.50 > SQLite +3.51 > StatusBar +3.52 > Toast +3.53 > TouchID +3.54 > Transfer +3.55 > Vibration +3.56 > WebIntent + ####4. Temas 4.1 [Introdução](chapters/04-temas/4a-intro.md) diff --git a/chapters/03-nativo/3y-backgroundGeolocation.md b/chapters/03-nativo/3y-backgroundGeolocation.md new file mode 100644 index 0000000..c0a3b79 --- /dev/null +++ b/chapters/03-nativo/3y-backgroundGeolocation.md @@ -0,0 +1,128 @@ +BackgroundGeolocation +=========== + +``` +$ ionic plugin add cordova-plugin-mauron85-background-geolocation +``` + +Repositório: [https://github.com/mauron85/cordova-plugin-background-geolocation](https://github.com/mauron85/cordova-plugin-background-geolocation) + +O plugin nos proporciona a geolocalização em primeiro plano ou em segundo plano(*background*) com economia de bateria ao utilizar "monitoramento de região circular" e "pausa de detecção". + +Para mais informações, por favor veja a [documentação do plugin](https://github.com/mauron85/cordova-plugin-background-geolocation). + +Platafomas suportadas +----- +- Android +- iOS +- Windows Phone 8 + +Uso +--- + +``` javascript +import {BackgroundGeolocation} from 'ionic-native'; + + + +// Quando o dispositivo estiver pronto : +platform.ready().then(() => { + + // BackgroundGeolocation é altamente configurável. Veja as opcões específicas de configuração da plataforma + let config = { + desiredAccuracy: 10, + stationaryRadius: 20, + distanceFilter: 30, + debug: true, // habilite para ouvir sons referentes ao ciclo de vida do background-geolocation. + stopOnTerminate: false, // habilite para limpar as configurações de localização em segundo plano quando o app for fechado. + }; + + BackgroundGeolocation.configure(config) + .then((location) => { + console.log('[js] BackgroundGeolocation callback: ' + location.latitude + ',' + location.longitude); + + // IMPORTANTE: Você precisa executar o método "finish" aqui para informar o plugin nativo de que você terminou + // e a tarefa em background pode ser concluída. Você precisa fazer isso independentemente do sucesso da sua requisição HTTP. + // SE VOCÊ NÃO FIZER, iOS vai FINALIZAR SUA APLICAÇÃO(CRASH) por ficar muito tempo em segundo plano. + BackgroundGeolocation.finish(); // SOMENTE IOS + }) + .catch((error) => { + console.log('BackgroundGeolocation error'); + }); + + // LIGA o sistema de geolocalização em segundo plano. O usuário vai ser rastreado sempre que ele suspender a aplicação. + BackgroundGeolocation.start(); +} + +// Se você quiser DESLIGAR o sistema de localização em segundo plano, chame o método "stop". +BackgroundGeolocation.stop(); +``` + +Métodos estáticos +----------------- + +``` configure() ``` + +Configura o plugin. O callback de sucesso vai ser chamado com um argumento - Objeto de localização, que tenta imitar a interface de coordenadas do w3c. Veja mais em [http://dev.w3.org/geo/api/spec-source.html#coordinates_interface](http://dev.w3.org/geo/api/spec-source.html#coordinates_interface) Callback executado toda vez que a geolocalização é salva em segundo plano. + +Callback de falha a ser executado toda vez que ocorrer um erro na geolocalização. + +Options é um objeto json do tipo Config. + +``` start() ``` + +LIGA o sistema de geolocalização em segundo plano. O usuário vai ser rastreado sempre que ele suspender a aplicação. + +``` stop() ``` + +DESLIGA o sistema de geolocalização em segundo plano. + +``` finish() ``` + +Informa o plugin nativo de que você terminou e a tarefa em segundo plano(background) pode ser concluída. OBS: Somente iOS e WP. + +``` changePace() ``` + +Força o plugin a entrar no modo "em movimento" ou "fixo". OBS: Somente iOS e WP. + +``` setConfig() ``` + +Define as configurações. + +``` getStationaryLocation() ``` + +Retorna a stationaryLocation se disponivel. retorna null se não estiver. OBS: Somente iOS e WP. + +``` onStationary() ``` + +Adiciona um *listener* para região fixa. Sempre que o device entrar em "modo fixo", seu callback de sucesso vai ser executado com o parâmetro de localização contendo o "radius" da região. OBS: Somente iOS e WP + +``` isLocationEnabled() ``` + +Verifica se a localização está habilitada no dispositivo. + +Returns: Promise Retorna uma promise com um argumento do tipo int com valores 0, 1 (true). OBS: Somente ANDROID. + +``` showLocationSettings() ``` + +Mostra as configurações de localização do dispositivo. + +``` watchLocationMode() ``` + +Método pode ser usado para detectar mudanças do usuário nas configurações do serviço de localização. Se o usuário habilitar ou desabilitar os serviços de localização o callback de sucesso será executado. Em caso de erro (SettingNotFoundException) o callback de falha será executado. OBS: Somente ANDROID. + +``` stopWatchingLocationMode() ``` + +Para de olhar para mudanças nos modos de localização. OBS: Somente ANDROID. + +``` getLocations() ``` + +Método vai retornar todas as localizações salvas. As localizações são salvas quando: - config.stopOnTerminate é falso e a atividade principal foi morta pelo sistema ou - option.debug é verdadeiro. OBS: Somente ANDROID + +``` deleteLocation() ``` + +Deleta a localização salva passando o locationId. OBS: Somente ANDROID + +``` deleteAllLocations() ``` + +Deleta todas as localizações salvas. OBS: Somente ANDROID diff --git a/chapters/03-nativo/README.md b/chapters/03-nativo/README.md index 181d8e4..99b3590 100644 --- a/chapters/03-nativo/README.md +++ b/chapters/03-nativo/README.md @@ -23,21 +23,35 @@ 3.22 > File 3.23 > Flashlight 3.24 > [Geolocation](3w-geolocation.md) -3.25 > Globalization +3.25 > Globalization +3.26 > Google Analytics 3.27 > [Google Maps](3za-googleMaps.md) -3.26 > Hotspot -3.27 > ImagePicker -3.28 > InAppBrowser -3.29 > Keyboard -3.30 > LaunchNavigator -3.31 > LocalNotifications -3.32 > Network -3.33 > [Push](3v-push.md) -3.34 > SMS -3.35 > SocialSharing -3.36 > SpinnerDialog -3.37 > SplashScreen -3.38 > StatusBar -3.39 > Toast -3.40 > TouchID -3.41 > Vibration +3.28 > Google Plus +3.29 > Hotspot +3.30 > Httpd +3.31 > IBeacon +3.32 > ImagePicker +3.33 > InAppBrowser +3.34 > Ionic Deeplinks +3.35 > Keyboard +3.36 > Launch Navigator +3.37 > Local Notifications +3.38 > MediaError +3.39 > MediaPlugin +3.40 > Network +3.41 > OneSignal +3.42 > Printer +3.43 > [Push](3v-push.md) +3.44 > SafariViewController +3.45 > Screenshot +3.46 > SMS +3.47 > Social Sharing +3.48 > Spinner Dialog +3.49 > SplashScreen +3.50 > SQLite +3.51 > StatusBar +3.52 > Toast +3.53 > TouchID +3.54 > Transfer +3.55 > Vibration +3.56 > WebIntent