У меня трудности с работой GeoLocation в Ionic 3. Я просмотрел несколько уроков и столкнулся с одной и той же проблемой со всеми из них.Вот мои настройки.
PS C:\> ionic info
cli packages: (C:\Users\myID\AppData\Roaming\npm\node_modules)
@ionic/cli-utils : 1.9.2
ionic (Ionic CLI) : 3.9.2
global packages:
Cordova CLI : 8.1.2 (cordova-lib@8.1.1)
local packages:
@ionic/app-scripts : 3.1.0
Cordova Platforms : none
Ionic Framework : ionic-angular 3.9.2
System:
Android SDK Tools : 26.1.1
Node : v8.10.0
npm : 5.6.0
OS : Windows 10
PS C:\>
PS C:\>
PS C:\>
PS C:\> ionic cordova plugin list
> cordova plugin ls
v Running command - done!
cordova-plugin-geolocation 4.0.1 "Geolocation"
PS C:\>
PS C:\>
PS C:\>
При настройке приложения hello-world / blank geo location я получаю ошибки, ссылающиеся на плагин GeoLocation.
// app.module.ts
import { Geolocation } from '@ionic-native/geolocation';
// ...
providers: [
StatusBar,
SplashScreen,
{provide: ErrorHandler, useClass: IonicErrorHandler},
Geolocation // <-- Errors here
]
Я могу обойти эту ошибкудобавив суффикс ngx:
// app.module.ts
import { Geolocation } from '@ionic-native/geolocation/ngx';
// ...
providers: [
StatusBar,
SplashScreen,
{provide: ErrorHandler, useClass: IonicErrorHandler},
Geolocation // OK now
]
Однако, когда я действительно использую его:
//home.ts
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { Geolocation } from '@ionic-native/geolocation/ngx';
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
lat: any;
lng: any;
constructor(public navCtrl: NavController,
public geo: Geolocation) {
}
ionViewDidLoad() {
this.geo.getCurrentPosition().then(pos => {
this.lat = pos.coords.latitude;
this.lng = pos.coords.longitude;
}).catch(err => console.log(err));
}
}
Я начинаю получать эту ошибку:
TypeError: Object(...) is not a function at Geolocation.getCurrentPosition
Комментированиевызов getCurrentPosition
устраняет ошибку.
Что я пропустил?Я получил неправильную версию плагина?Есть ли способ узнать, какой из них работает с последней версией Ionic 3?