ionic=ネイティブプラグインgeolocation
in ionic 4
しかし、私はこのエラーを受け取りました:
コンパイルに失敗しました。
./node_modules/@ionic-native/geolocation/index.js Module not found:Error:Ca n't resolve 'rxjs/Observable' in 'C:\ Projects\ionic\prayers\node_modules\@ ionic-native\geolocation'
これは私の依存関係です:
"dependencies": {
"@angular/common": "6.0.9",
"@angular/core": "6.0.9",
"@angular/forms": "6.0.9",
"@angular/http": "6.0.9",
"@angular/platform-browser": "6.0.9",
"@angular/platform-browser-dynamic": "6.0.9",
"@angular/router": "6.0.9",
"@ionic-native/core": "5.0.0-beta.14",
"@ionic-native/geolocation": "^4.11.0",
"@ionic-native/splash-screen": "5.0.0-beta.14",
"@ionic-native/status-bar": "5.0.0-beta.14",
"@ionic/angular": "4.0.0-beta.0",
"@ionic/ng-toolkit": "1.0.0",
"@ionic/schematics-angular": "1.0.1",
"cordova-plugin-geolocation": "^4.0.1",
"core-js": "^2.5.3",
"rxjs": "6.2.2",
"zone.js": "^0.8.26"
},
これは私が使用したコードです:-
app.module.ts
import { Geolocation } from '@ionic-native/geolocation';
...
NgModule({
declarations: [AppComponent],
entryComponents: [],
imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule],
providers: [
StatusBar,
SplashScreen, Geolocation,
{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
],
bootstrap: [AppComponent]
})
home.ts
import { Geolocation } from '@ionic-native/geolocation';
...
constructor(private geolocation: Geolocation) {}
インポート文が変更されているrxjs 6.2.2
がインストールされています。
安定したionic-nativeは引き続き rxjs 5.x を使用しています。
移行ガイド こちら を確認できます。
rxjs-compat を使用できます
npm i rxjs-compat --save
または、5.xバージョンに戻ります。
別のオプションは、@ionic-native/geolocation
バージョンを5.0.0-beta14に更新することです
package.json によると、rxjs 6.xを使用する必要があるため、他のイオンネイティブプラグインと同様
npm i --save @ionic-native/[email protected]
同じ問題に直面していて、Geolocation
を5.0.0-beta.14
にアップグレードするときに、インポートパスも次のように更新する必要がありました。import { Geolocation } from "@ionic-native/geolocation/ngx";
OBS:UniqueDeviceID
のような他のインポートの場合、/ngx
サフィックスもインポートパスに追加する必要がありました。
Angularのバージョン6のため、このサフィックスが必要だと思います。