2016-09-28 4 views
0

Ich habe vor kurzem begonnen, Onsen-UI 2 und damit Monaca CLI-Tools zu verwenden. Es ist ein ziemlich tolles Werkzeug, sehr hilfreich. Es gibt ein oder zwei Niggel, die ich allerdings aufgegriffen habe, obwohl ich denke, dass ich die meisten davon lösen kann, wenn ich mir die Migrationsleitfäden ansehe.Onsen 2 - Monaca CLI - Cordova Plugins seltsames Verhalten

Das größte Problem, das ich nicht herausfinden kann, sind die Plugins. Ich erstelle meine App (Plain JS Onsen 2.0 App) mit der Monaca CLI und fahre fort, normale cordova-Befehle zu verwenden, um meine Plattformen und Plugins hinzuzufügen. Frag mich nicht warum, ich mag es einfach so. Wenn ich für iOS baue, erhalte ich den Status "Erfolg" und meine App läuft im Emulator und auf meinem Gerät gut. Das Problem ist, wenn ich versuche, Funktionen von Plugins zu verwenden.

Ich habe versucht, das Card.io-Plugin zu implementieren (erfolgreich installiert) und meine App startet gut. Ich habe eine Funktion, die auf dem Gerät feuert, um zu überprüfen, ob das Plugin funktioniert oder nicht, eine "canScan" -Funktion, die eine Warnung mit dem Ergebnis anzeigt. Auch wenn das Gerät bereit ist, passiert nichts. Das seltsame Verhalten ist folgendes: Wenn ich die App in den Hintergrund bringe oder das Multitasking-Fenster öffne (Doppelklick auf die Home-Taste) und dann zur App zurückkomme, erscheint die Warnung mit der Nachricht, die ich scannen kann. Nach dem Empfang dieser Nachricht sollte ich in der Lage sein, auf eine Schaltfläche zu tippen und die Card.io-Schnittstelle sollte erscheinen, aber wiederum passiert nichts, wenn ich auf die Schaltfläche tippe. Nur wenn ich das gleiche wie vorher mache (Multitasking eingeben und zurück zur App), erscheint die Card.io-Oberfläche, friert aber die App ein.

Ich dachte, es gab ein Problem mit meiner Implementierung des Plugins, d.h. mein Code ist falsch, aber das passiert auch mit anderen Plugins.

Irgendwelche Ideen, was hier vor sich geht?

Das ist mein "onDeviceReady" -Funktion:

document.addEventListener('deviceready', function() { 
    CardIO.canScan(onCardIOCheck); 
}, false); 

Dies ist, wie ich das Plugin installiert ist:

$ cordova plugin add <plugin-name> 

Ich habe auch versucht das Plugin über die Werkzeuge Monaca Installation:

$ monaca plugin add <plugin-name> 

Jede Hilfe oder Beratung wird sehr geschätzt werden!

+0

Woher wird die onDeviceReady-Funktion aufgerufen? –

+0

In meinem Index.html – user1840352

+0

Nun, das ist wahrscheinlich dein Problem. –

Antwort

1

Verschieben Sie Ihre OnDeviceReady-Funktion in eine separate .js-Datei und prüfen Sie, ob das Problem dadurch gelöst wird.