Relativ allgemeine Frage zur Entwicklung mit cordova/ PhoneGap

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Relativ allgemeine Frage zur Entwicklung mit cordova/ PhoneGap

      Hallo,

      ich habe eine simple cordova/ PhoneGap app aufgesetzt, welche als mein "Front-End" dienen soll (momentan nur ein Button auf der index.html). Jetzt möchte ich den Klick auf diesen Button quasi als Startpunkt für eine bereits funktionierende Android App/ code verwenden. Ich weiß, der Satz ist relativ unfachmännisch geschrieben, deswegen jetzt noch eine genauere Erläuterung:

      Google bietet eine API zur Erkennung von Barcodes/ QR-Codes an (developers.google.com/vision/m…eating_a_barcode_detector) und hat dazu auch funktionierenden code auf GitHub (github.com/googlesamples/android-vision) bereitgestellt. Ich interessiere mich dabei nur für den multi-tracker (github.com/googlesamples/andro…sionSamples/multi-tracker).
      Den entsprechenden Code habe ich mir bereits heruntergeladen, leicht angepasst (möchte nur Barcodes, keine Gesichter scannen) und er funktioniert auf meinen realen Android device auch auf Anhieb. (Android Studio -> 'run' -> funktioniert)

      Die mir gestellte Aufgabe verlangt allerdings nach einer PhoneGap/ cordova app, um plattformunabhängig zu bleiben.
      Mein Gedanke war jetzt, dass ich mir per HTML/CSS/JS ein simples Front-End erstelle, ein paar wenige Zeilen Code für ein Plugin schreibe und dann nach Klick auf einen Button im Front-End meinen Android Code genauso auszuführen, als wenn ich in Android Studio auf 'run' geklickt hätte. Simple formuliert: Irgendwie soll das Plugin die MainActivity aufrufen und ein weiterer Button im android bringt mich zurück zum cordova Front-End.

      Ist das überhaupt in der von mir gedachten Form realisierbar? Ich bin absolut -kein- Android/ Java Experte und nicht in der Lage den komplexen, verschachtelten Code von Google umzuschreiben (würde mMn. auch den Umfang der Aufgabe sprengen).
      Es ist für mich auch gar nicht nötig, das Front-End (HTML/CSS/JS) und Back-End (Android) nahtlos zusammenarbeiten. Ich möchte nur starten können, mich dann komplett in Android aufhalten und später wieder zurückkehren können (im besten Fall unter Rückgabe diverser Ergebnisse aus Android).

      Ich frage auch, weil ich den Sinn von cordova/ PhoneGap folgendermaßen verstanden habe (wäre natürlich gut, wenn ich das falsch verstanden habe): Entwicklung einer HTML/CSS/JS Umgebung welche plattformunabhängig verwendet werden kann und an manchen Stellen (in vermutlich eher simpler Form) auf native Funktionen wie die Kamera, den Kalendar o.ä. zugreifen kann. Integration komplexer Apps ist nicht einfach zu realisieren bzw. erfordert detailliertes Wissen.

      Ich hoffe jemand kann mir die Sachlage kurz erklären.

      Grüße
      chakuze
    • Alle noch am überlegen?..

      Ich habe heute versucht ein relativ simples Plugin zu schreiben, was nach drücken auf einen Knopf im index.html die Kamera öffnet und ein Foto speichert. Das hat soweit gut geklappt. Meine Idee ist jetzt, die selbe Vorgehensweise zu verwenden (per Intent) um die MainActivity der Google 'multi-tracker' Geschichte aufzurufen.

      Ich füge mein Plugin per Befehl 'cordova plugin add /Users/...../thePlugin/' hinzu und möchte dann per 'cordova run android' die App starten. Leider tritt dann ein ganzer Haufen Fehler auf... es beginnt damit:

      error: diamond operator is not supported in -source 1.6
      private Set<Graphic> mGraphics = new HashSet<>();
      ^
      (use -source 7 or higher to enable diamond operator)

      Ich habe etwas nachgeforscht und es liegt an der entsprechenden Java Version auf die compiled wird. Leider habe ich keine Möglichkeit gefunden, die Version für den o.g. Befehl entsprechend abzuändern. Ändere ich den Projekt Settings etwas, interessiert sich der Befehl nicht dafür (vermutlich weil er über das interne Terminal von WebStorm ausgeführt wird und nichts mit den eigentlichen Settings dort zu tun hat) -> Ich muss also erstmal wissen, wie ich das für den Befehl ändern kann.

      Testweise habe ich aber bereits die <> Operatoren gelöscht bzw. etwas eingetragen was keinen Sinn macht, nur um den Fehler wegzubekommen. Jetzt treten weitere Fehler auf welche mMn. darauf zurückzuführen sind, dass die entsprechenden Bibliotheken, die unter Android Studio als Dependencies eingetragen sind, nicht geladen werden können.
      Wie bekomme ich das hin? In meiner plugin.xml Datei habe ich bereits die cordova.jar Bibliothek drin, aber die andere eben nicht.
      Momentan sieht die Datei so aus:

      XML-Quellcode

      1. <?xml version="1.0" encoding="UTF-8"?>
      2. <plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
      3. xmlns:android="http://schemas.android.com/apk/res/android"
      4. id="com.matd.coolplugin"
      5. version="0.2.11">
      6. <name>CoolPlugin</name>
      7. <description>The coolest Plugin ever implemented</description>
      8. <license>Apache 2.0</license>
      9. <keywords>cordova,coolest</keywords>
      10. <repo></repo>
      11. <issue></issue>
      12. <js-module src="www/CoolPlugin.js" name="CoolPlugin">
      13. <clobbers target="CoolPlugin" />
      14. </js-module>
      15. <!-- android -->
      16. <platform name="android">
      17. <config-file target="res/xml/config.xml" parent="/*">
      18. <feature name="CoolPlugin" >
      19. <param name="android-package" value="CoolPlugin"/>
      20. </feature>
      21. </config-file>
      22. <!--<config-file target="AndroidManifest.xml" parent="/manifest">
      23. <uses-permission android:name="android.permission.CAMERA" />
      24. </config-file>-->
      25. <source-file src="src/android/src/user/multibarcode/CoolPlugin.java" target-dir="src/" />
      26. <source-file src="src/android/src/user/multibarcode/BarcodeTrackerFactory.java" target-dir="src/" />
      27. <source-file src="src/android/src/user/multibarcode/FaceTrackerFactory.java" target-dir="src/" />
      28. <source-file src="src/android/src/user/multibarcode/GraphicTracker.java" target-dir="src/" />
      29. <source-file src="src/android/src/user/multibarcode/MultiTrackerActivity.java" target-dir="src/" />
      30. <source-file src="src/android/src/user/multibarcode/TrackedGraphic.java" target-dir="src/" />
      31. <source-file src="src/android/src/user/multibarcode/ui/camera/CameraSourcePreview.java" target-dir="src/ui/camera/" />
      32. <source-file src="src/android/src/user/multibarcode/ui/camera/GraphicOverlay.java" target-dir="src/ui/camera/" />
      33. </platform>
      34. </plugin>
      Alles anzeigen