Zu Testzwecken habe ich das vollständige Beispiel kopiert, das auf der Phonegap-Kamera-API und ich habe eine Warnung auf onPhotoDataSuccess
gesetzt, um zu testen, wann die Funktion ausgelöst wird. Auf dem ersten Foto wird die Warnung nicht angezeigt. Nach dem ersten Versuch wird die Warnung angezeigt, nachdem das Foto gespeichert wurde.
Irgendwelche Tipps? Ich bin glücklich, genauer zu sein, wenn etwas unklar ist.
Ich habe den Code unten auf meinem Android Galaxy S3 getestet
%Vor%---------- UPDATE 1 ------------------
Ich habe es auf ein anderes Stück Code getestet:
%Vor%Und das hat den gleichen Effekt. Es tut nichts während des ersten Snap, aber es zeigt das Bild nach dem zweiten Snap. Ich habe auch gerade herausgefunden, dass das Bild, das nach dem zweiten Snap angezeigt wird, das erste Foto ist, das ich gemacht habe. Es scheint, dass das erste Argument in getPicture nicht beim ersten Snap ausgelöst wird. Das ist frustrierend, da Logcat mir nicht wirklich etwas zeigen kann.
---------------- UPDATE 2 ----------------
Ich habe es gerade auf Phonegap Build versucht und es funktioniert. Also muss es etwas mit dem Plugin zu tun haben ...
Ich weiß nicht, ob das die richtige Lösung ist oder nicht, aber es funktioniert perfekt für mich. Es wäre Teig, um Ihre Log-Katze zu verfolgen und genaues Problem zu finden.
Versuchen Sie, navigator.camera.PictureSourceType
instated von pictureSource
zu verwenden. so sieht es aus wie
und die gleiche Weise ersetzen Sie auch im Javascript-Code
%Vor%ODER
%Vor%Aktualisierung: Versuchen Sie, Ihre corodova.js lokal zu speichern, und rufen Sie das lokale Verzeichnis an, damit Ihr Verzeichnis wie
aussehen sollte assets/www/js/cordova.js
Hoffe das wird dir helfen !!!
Ich hatte das gleiche Problem nach der Aktualisierung von 3.0.0 auf 3.1.0. Verzögerte Kamera, keine Geolokalisierung usw.
Schauen Sie, ob die Datei platforms\android\cordova\version
eine alte Version anzeigt.
Dann müssen Sie Ihre Plattform aktualisieren. Also hier ist was ich getan habe.
cordova plugin rm org.apache.cordova.camera
cordova platform remove android
(löscht Änderungen, die Sie an * .java-Dateien vorgenommen haben) cordova platform add android
cordova plugin add org.apache.cordova.camera
Es ist im Grunde wie ein neues Projekt zu erstellen.
hatte genau das gleiche Problem. Der Capture-Erfolg wurde erst empfangen, nachdem captureVideo ein zweites Mal aufgerufen wurde.
Habe gerade meine alte app / bin / cordova.jar Datei durch neue 3.2.0 cordova-dev.jar ersetzt (in eclispe) und alle wieder in Reihenfolge:)
Ich hatte dieses genaue Problem auf Cordova 3.4.0, mit einer frischen Cordova-Installation (keine Aktualisierung von der vorherigen Version wie einige andere gepostet). Das erste Bild zu machen würde nichts tun - keinen Rückruf, keinen Rückruf. Das zweite Bild würde zu einem erfolgreichen Rückruf führen, aber die DATA_URL-Daten (das Base64-codierte Bild), die zurückkamen, waren die Daten aus dem ERSTEN Bild.
Für mich funktionierte es auf einem Telefon, verschiedenen Emulatoren usw. gut, außer auf einem Android 4.2 Telefon, wo es das tat. Die Lösung bestand darin, die App mithilfe der Anwendungsverwaltung des Telefons unter den Einstellungen vom Telefon zu deinstallieren und dann die App neu zu installieren. Dann würde das erste Bild den erfolgreichen Rückruf mit seinen eigenen Daten auslösen.
Keine Ahnung warum, aber die Deinstallation und Neuinstallation der App hat es für mich gelöst.
Ich hatte dieses Problem mit Cordova 3.7.1 und Camera 0.3.5 - jedes Mal, wenn ich das Plugin anrief, gab es das Bild / Pfad nicht zurück und beim zweiten Aufruf gab es den Fehler "Cancelled" für den vorherigen Anruf zurück.
Das Problem war, dass meine Hauptaktivität ein eigenes onActivityResult hatte, welches die Methode des Super nicht korrekt aufgerufen hat.
%Vor%Um es zu beheben, musste ich ELSE hinzufügen, um den richtigen Handler aufzurufen:
%Vor%Tags und Links javascript android cordova camera