2016-12-11 8 views
2

Ich versuche, dieses Cordova-Plugin https://github.com/honza889/cordova-plugin-kiosk in einer Ionic v2 App zu verwenden.So verwenden Sie nicht native Cordova Plugins in ionic 2

Grundsätzlich nach der Installation des Plugins in Cordova mit cordova plugin add https://github.com/honza889/cordova-plugin-kiosk.git ist das Plugin aktiviert und funktioniert.

Aber ich finde keine Möglichkeit, die Methoden des Plugins zu verwenden.

window.plugins ist nicht definiert

und cordova nicht definiert ist.

Ich habe versucht, das Plugin in app.component.ts zu importieren, aber ich kann den richtigen Weg nicht herausfinden.

Kennt jemand eine Möglichkeit, nicht native Plugins in einer Ionic V2 App zu verwenden (die Dokumentation und die Ressourcen sind veraltet oder beziehen sich auf native Plugins).

Vielen Dank im Voraus

+0

Andreas Gassmanns Antwort Arbeit sehr gut. Für diejenigen, die sich wundern, wie man auf 'window.plugins. {Plugin-name}. {Property-or-method}', trotz Kompilierungsfehlern, zugreifen kann: 'window ['plugins'] ...' –

Antwort

6

sollten Sie in der Lage sein, einfach die KioskPlugin Variable im Code zuzugreifen. Der Typoskript Compiler wird nicht wissen, dass die Variable, so haben Sie es zu erklären, zuerst:

declare let KioskPlugin: any; 

@Component({ 
    ... 
}) 
export class TestPage { 

    ... 

    exitKiosk() { 
    KioskPlugin.exitKiosk(); 
    } 
} 
+0

Das ist was ich fehlte. Ich bin mit Typoskript nicht so vertraut. Ich spielte mit dem Plug-in in der 'chrome: // inspect-Konsole' und es passte nicht zu meinen Bedürfnissen. Ich schreibe es am Ende selbst, so dass Ihre Einsicht sehr geschätzt wird, danke. –

+0

Ich habe es wie oben beschrieben versucht, aber es funktioniert immer noch nicht, kann mir jemand helfen. Folgendes ist das Problem: file: ///android_asset/www/build/polyfills.js: Zeile 3: Fehler: Uncaught (in Versprechen): Fehler: Fehler in der ./MyApp-Klasse MyApp - Inline-Vorlage: 0: 0 verursacht durch: KioskPlugin ist nicht definiert ReferenceError: KioskPlugin ist nicht definiert – sakshi

+0

Haben Sie 'declare let KioskPlugin: any;' an den Anfang der MyApp-Klassendatei hinzugefügt? –

2

ich ein ähnliches Problem hatte versucht, auf eine benutzerdefinierte Plugin für den Zugriff auf und ich schließlich dank diesem Beitrag gelöst: https://github.com/ionic-team/ionic-native/issues/525

Hinzufügen von declare var cordova: any; anstelle von meinem benutzerdefinierten Plugin var, und Aufruf über cordova.plugins.myCustomPlugin.myFunction() tat den Trick.

In der Tat, hängt von den Einstellungen in der plugin.xml-Datei des Plugins ab, das Sie verwenden möchten. Genauer gesagt zum Tag <clobbers target="variable.MyCustomPlugin" />, der bestimmt, wo die js-Dateien des Plugins exportiert werden. Eine weitere Möglichkeit sich zum Beispiel wäre declare var window: any; und dann window.myCustomPlugin.myFunction()

Hoffe, es hilft;)

+0

Vielen Dank! Das hat für mich funktioniert! – Genarito

Verwandte Themen