原生离子地理定位有时不适用于少数设备。需要重新启动设备才能运行geolocation.Geolocation重启设备后工作。我在android 5.0.2版上遇到了问题。
我的代码:
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { Geolocation } from '@ionic-native/geolocation';
import 'rxjs/add/observable/bindCallback';
import 'rxjs/add/operator/catch';
import 'rxjs/add/observable/fromPromise';
import 'rxjs/add/observable/throw';
@Injectable()
export class LocationService {
constructor (
private geolocation: Geolocation
) { }
getLocation(): Observable<any> {
return Observable.fromPromise (
this.geolocation.getCurrentPosition({
maximumAge: 5 * 60 * 1000, // 5 minutes
timeout: 30000,
enableHighAccuracy: true
})
).catch(err => {
console.log(err)
return Observable.throw(err);
})
}
}
尝试使用Ionic平台进行环绕。
constructor(public plt: Platform) {
this.plt.ready().then((readySource) => {
console.log('Platform ready from', readySource);
// Platform now ready, execute any required native code
});
}