2016-08-03 16 views
19

Ich versuche, das cordova GooglePlus Plugin in einem neuen ionischen 2 Projekt (neueste ionic2 Version) zu verwenden, aber ich stoße immer auf Fehler in Bezug auf Cordova. Das Plugin ist korrekt installiert und wird im Plugin-Ordner angezeigt.ionic 2 Fehler cordova nicht verfügbar

Ein Ansatz, den ich versucht, ist dies:

import { GooglePlus } from "ionic-native"; 

und dann

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

Die Login-Methode führt aber immer wirft eine Fehlermeldung, "cordova_not_available"

ich die App mit ionic serve testen möchten auf meinem Windows-System zuerst, bevor es auf meinem Android-Handy entfaltet. Wie kann ich cordova auf dem localhost Server verfügbar machen? Bei der Suche verstehe ich, dass cordova.js generiert wird und immer im Bereitstellungspaket für das Gerät enthalten ist.

Ein weiterer Ansatz, den ich versucht wird

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

Aber dieser Ansatz nicht durch den Compiler Typoskript gehen, die nichts weiß über ein Plug-ins Eigenschaft auf der Fenster-Objekt.

Wie kann ich das beheben?

Antwort

5

Mit ionic serve werden alle Cordova Plugins deaktiviert, da es nicht auf einem Gerät ausgeführt wird.

verwenden Rather ionic run android Dies wird ein Android-Emulator starten, die alle cordova Plugins erlauben sollte funktionieren

ich auch über den zweiten Ansatz gekommen sind, aber die Syntax hat dann windows['plugins'].googleplus.login(...)

+0

Sieht so aus, als ob sich das jetzt geändert haben könnte: ionic cordova run android – Ash

14

Dieser Fehler sein in der Regel tritt auf, wenn Sie die App in Chrome mit ionic serve ausführen, die normal ist, wie im Browser cordova native Komponenten sind nicht da, sondern auch auf Emulator und Geräte auftreten, wenn ein ionisches natives Plugin, das Sie verwenden wurde hinzugefügt wurde, auch wenn Sie habe das ionische Plugin dafür hinzugefügt.

Zum Beispiel, wenn Sie sind using native Toast

dann müssen Sie die richtige ionische Abhängigkeiten hinzu:

ionic plugin add cordova-plugin-x-toast --save 

aber Sie müssen auch cordova Abhängigkeiten hinzuzufügen:

cordova plugin add cordova-plugin-x-toast --save 

Wenn Sie vergessen Fügen Sie das spätere Cordova-Plugin hinzu. Sie erhalten einen Fehler wie:

Runtime Error Uncaught(in promise): cordova_not_available 

Was kann schwierig sein, die Ursache zu finden.

Sobald Sie ionische und Cordova Abhängigkeiten hinzugefügt haben, sollten Sie in der Lage sein, es zu verwenden.

Stellen Sie sicher, es zu importieren:

import { Toast } from 'ionic-native'; 

inject Plattform in Konstruktor:

constructor(public navCtrl: NavController, private platform: Platform) {... 

dann die native Artikel verwenden:

this.platform.ready().then(() => 
     Toast.show("Successfull", '5000', 'center') 
     .subscribe(
     toast => { 
      console.log(toast); 
     } 
    )); 
+0

Ich bemerkte, dass der Fehler: Runtime Error Uncaught (in Versprechung): cordova_not_available zeigt noch einige Male beim Ausführen des Android Emulator auf Linux .. noch nicht sicher, was verursacht es ist nicht konsistent, manchmal passiert es, andere es funktioniert. –

+0

immer noch den gleichen Fehler, auch nach all dieser Installation, und ich bemerkte, dass die CLI beobachtet, dass das Plugin bereits auf dem laufenden cordova Plugin installiert wurde cordova-plugin-x-toast hinzufügen --save – kolexinfos

+0

@kolexinfos - es funktioniert nur beim Laufen mit ionic run android ohne die -lc-option, wenn ionen dienen oder ionic run android -lc ja der fehler immer noch da die cordova-plugins sind nicht im browser verfügbar. Was ich mit Android mache ist, ionic run Android zu verklagen und dann in der Lage zu sein, Protokolle/Konsole I Schwanz logcat logs zu sehen: adb logcat | grep -i "Konsole", so kann ich immer noch die Protokolle folgen. –

25

Wenn Sie das Plugin wollen arbeiten der Browser, den Sie hinzufügen sollten und führen Sie es:

ionic cordova platform add browser 

und führen Sie es:

ionic cordova run browser 

statt ionic serve.