<commit_before>[![Circle CI](https://circleci.com/gh/driftyco/ionic-native.svg?style=shield)](https://circleci.com/gh/driftyco/ionic-native) [![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)
[![npm](https://img.shields.io/npm/l/express.svg)](https://www.npmjs.com/package/ionic-native)

[![NPM](https://nodei.co/npm/ionic-native.png?stars&downloads)](https://nodei.co/npm/ionic-native/)
[![NPM](https://nodei.co/npm-dl/ionic-native.png?months=6&height=2)](https://nodei.co/npm/ionic-native/)

# Ionic Native

Ionic Native is a curated set of wrappers for Cordova plugins that make adding any native functionality you need to your [Ionic 2](http://ionicframework.com/) mobile app easy.

### Documentation

For the full Ionic Native documentation, please visit [http://ionicframework.com/docs/v2/native/](http://ionicframework.com/docs/v2/native/).

### Promises and Observables

Ionic Native wraps plugin callbacks in a Promise or [Observable](https://gist.github.com/staltz/868e7e9bc2a7b8c1f754), providing a common interface for all plugins and ensuring that native events trigger change detection in Angular 2.

```typescript
import { Geolocation } from '@ionic-native/geolocation';
import { Platform } from 'ionic-angular';

@Component({ ... })
export class MyComponent {

  constructor(private geolocation: Geolocation, private platform: Platform) {
  
    platform.ready().then(() => {
    
      // get position
      geolocation.getCurrentPosition().then(pos => {
        
        console.log(`lat: ${pos.coords.latitude}, lon: ${pos.coords.longitude}`)
        
      });
        
        
      // watch position
      const watch = geolocation.watchPosition().subscribe(pos => {
      
        console.log(`lat: ${pos.coords.latitude}, lon: ${pos.coords.longitude}`)
      
      });
      
      // to stop watching
      watch.unsubscribe();
    
    });
  
  }

}
```

### Runtime Diagnostics

Spent way too long diagnosing an issue only to realize a plugin wasn't firing or installed? Ionic Native lets you know what the issue is and how you can resolve it.

![img](http://ionic-io-assets.s3.amazonaws.com/ionic-native-console.png)

## Installation

Run following commmand to install ionic-native in your project.
```
npm install ionic-native --save
```


## Plugin Missing?
Let us know or submit a PR! Take a look at [the Developer Guide](https://github.com/driftyco/ionic-native/blob/master/DEVELOPER.md) for more on how to contribute. :heart:


# Credits

<NAME> - [@ihadeed](http://github.com/ihadeed)

<NAME> - [@timlancina](http://twitter.com/timlancina)

<NAME> - [@maxlynch](http://twitter.com/maxlynch)

<NAME> - [@robwormald](https://twitter.com/robwormald)<commit_msg>chore(): improve docs<commit_after>[![Circle CI](https://circleci.com/gh/driftyco/ionic-native.svg?style=shield)](https://circleci.com/gh/driftyco/ionic-native) [![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)
[![npm](https://img.shields.io/npm/l/express.svg)](https://www.npmjs.com/package/ionic-native)

[![NPM](https://nodei.co/npm/ionic-native.png?stars&downloads)](https://nodei.co/npm/ionic-native/)
[![NPM](https://nodei.co/npm-dl/ionic-native.png?months=6&height=2)](https://nodei.co/npm/ionic-native/)

# Ionic Native

Ionic Native is a curated set of wrappers for Cordova plugins that make adding any native functionality you need to your [Ionic 2](http://ionicframework.com/) mobile app easy.

## Installation

Run following command to install Ionic Native in your project.
```
npm install @ionic-native/core --save
```

You also need to install the Ionic Native package for each plugin you want to add. Please see the Ionic Native documentation for complete instructions on how to add and use the plugins.

## Documentation

For the full Ionic Native documentation, please visit [http://ionicframework.com/docs/v2/native/](http://ionicframework.com/docs/v2/native/).

### Promises and Observables

Ionic Native wraps plugin callbacks in a Promise or [Observable](https://gist.github.com/staltz/868e7e9bc2a7b8c1f754), providing a common interface for all plugins and ensuring that native events trigger change detection in Angular 2.

```typescript
import { Geolocation } from '@ionic-native/geolocation';
import { Platform } from 'ionic-angular';

@Component({ ... })
export class MyComponent {

  constructor(private geolocation: Geolocation, private platform: Platform) {
  
    platform.ready().then(() => {
    
      // get position
      geolocation.getCurrentPosition().then(pos => {
        
        console.log(`lat: ${pos.coords.latitude}, lon: ${pos.coords.longitude}`)
        
      });
        
        
      // watch position
      const watch = geolocation.watchPosition().subscribe(pos => {
      
        console.log(`lat: ${pos.coords.latitude}, lon: ${pos.coords.longitude}`)
      
      });
      
      // to stop watching
      watch.unsubscribe();
    
    });
  
  }

}
```

### Runtime Diagnostics

Spent way too long diagnosing an issue only to realize a plugin wasn't firing or installed? Ionic Native lets you know what the issue is and how you can resolve it.

![img](http://ionic-io-assets.s3.amazonaws.com/ionic-native-console.png)


## Plugin Missing?
Let us know or submit a PR! Take a look at [the Developer Guide](https://github.com/driftyco/ionic-native/blob/master/DEVELOPER.md) for more on how to contribute. :heart:


# Credits

<NAME> - [@ihadeed](http://github.com/ihadeed)

<NAME> - [@timlancina](http://twitter.com/timlancina)

<NAME> - [@maxlynch](http://twitter.com/maxlynch)

<NAME> - [@robwormald](https://twitter.com/robwormald)
{'fraction_non_alphanumeric': 0.14823201532834002, 'fraction_numerical': 0.006619055913603902, 'mean_word_length': 3.7533112582781456, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 17, 'https://': 24, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5278362', 'n_tokens_mistral': 1912, 'n_tokens_neox': 1786, 'n_words': 427}