Angular wrapper for Cordova
npm install gabrielpf
NPM: https://www.npmjs.com/package/angular-cordova
Efficient way of getting the current position using the geolocation plugin.
``
import { GeolocationService } from 'angular-cordova/plugin/geolocation';
@Component({
selector: 'demo',
providers: [
GeolocationService
]
})
export class DemoComponent {
private sub: any;
private position: any;
constructor(
private geolocationService: GeolocationService
) {}
getCurrentPosition(): Observable
if (!this.sub) {
this.sub = this.geolocationService.watchPosition().map((res) => {
// console.log("watchPosition update");
this.position = {
lat: res.coords.latitude,
lng: res.coords.longitude
};
}).catch(() => {
return Observable.of({});
}).share();
this.sub.subscribe(() => {});
}
if (this.position) {
return Observable.of(this.position);
} else {
return this.sub.first().timeout(10000).catch(() => {
return Observable.of({});
});
}
}
}
`
Example listening to keyboard changes using the keyboard plugin.
`
import { KeyboardService } from 'angular-cordova/plugin/keyboard';
KeyboardService.keyboardDidShow.subscribe(() => {
console.log("keyboardDidShow");
});
`
If you still need to hook in to deviceready manually, you can do so:
`
import { Cordova } from 'angular-cordova';
Cordova.deviceready.subscribe(() => {
console.log("we are ready!");
});
``