web-dev-qa-db-ja.com

ionic 2エラーcordova not available

新しいionic 2プロジェクト(最新のionic2バージョン)でcordova GooglePlusプラグインを使用しようとしていますが、cordovaに関するエラーが常に発生します。プラグインが適切にインストールされ、プラグインフォルダーに表示されます。

私が試した1つのアプローチはこれです:

import { GooglePlus } from "ionic-native";

その後

GooglePlus.login().then(...)

ログインメソッドは実行されますが、常に"cordova_not_available"というエラーがスローされます

Android電話に展開する前に、まずWindowsシステムでionic serveを使用してアプリをテストします。 localhostサーバーでCordovaを使用可能にするにはどうすればよいですか?検索から、cordova.jsが生成され、常にデバイスの展開パッケージに含まれていることがわかります。

私が試した別のアプローチは

window.plugins.googleplus.login(...)

しかし、このアプローチは、Windowsオブジェクトのプラグインプロパティについて何も知らないTypeScriptコンパイラーを経由しません。

どうすれば修正できますか?

32
hholtij

プラグインをブラウザで機能させるには、platform browserを追加して実行する必要があります。

ionic cordova platform add browser

そしてそれを実行します:

ionic cordova run browser

ionic serveの代わりに。

64
Ajay Gupta

ionic serveを使用すると、デバイスで実行されていないため、すべてのcordovaプラグインが無効になります。

代わりにionic cordova run Androidを使用します。これにより、すべてのCordovaプラグインが機能できるようにするAndroidエミュレーターが起動します。

また、2番目のアプローチに出くわしましたが、構文はwindows['plugins'].googleplus.login(...)でなければなりません

7
DeepFreez

ionic cordova run browserを使用するのは、変更をコンパイルするのに時間がかかるため、最適なオプションではない場合があります。

私の場合、問題の原因はFCMプラグインでした。 ionic serveを使用すると、ブラウザーで実行できません。私のコードはapp.component.ts内にあるため、問題を簡単に回避できました。次の行を使用しました。

  if (platform.is('cordova')) 
     {  this.fcmx.onTokenRefresh().subscribe(token => { 
     this.pushNoti.storeNewToken(token); }); }

Platform.is( 'cordova')を使用すると、ブラウザーでのトラブルの原因となるコードの実行を防ぐことができます。

2

Androidデバイスを接続した後に単に実行する

ionic cordova run Android

必ずGoogleマップキーを修正してください

0
Tlzdeveloper786