2017-05-02 2 views
0

Das bin ich ausgeflippt. Ich habe eine einfache Anwendung, wo Sie eine Taste drücken und es ein Bild machen, dann kann der Benutzer andere Dinge tun, aber das Problem ist, dass irgendwann die GetPicture Funktion ignoriert wird und die Kamera zeigt nie, hier geht ein paar Informationen und einfachen Code:Ionic Kamera GetPicture Plugin ignoriert

$ ionic info 

Your system information: 

Cordova CLI: 6.5.0 
Ionic CLI Version: 2.2.2 
Ionic App Lib Version: 2.2.1 
ios-deploy version: 1.9.1 
ios-sim version: 5.0.13 
OS: macOS Sierra 
Node Version: v6.10.2 
Xcode version: Xcode 8.3.2 Build version 8E2002 

Installed platforms: 
    android 6.0.0 
    ios 4.3.1 

Plugins installiert

$ ionic plugin ls 
WARN: ionic.project has been renamed to ionic.config.json, please rename it. 
com.googlemaps.ios 2.1.1 "Google Maps SDK for iOS" 
cordova-plugin-camera 2.4.0 "Camera" 
cordova-plugin-compat 1.1.0 "Compat" 
cordova-plugin-console 1.0.3 "Console" 
cordova-plugin-device 1.1.2 "Device" 
cordova-plugin-file 4.3.1 "File" 
cordova-plugin-file-transfer 1.6.1 "File Transfer" 
cordova-plugin-geolocation 2.4.2 "Geolocation" 
cordova-plugin-googlemaps 1.4.0 "phonegap-googlemaps-plugin" 
cordova-plugin-screen-orientation 1.4.2 "Screen Orientation" 
cordova-plugin-splashscreen 3.2.2 "Splashscreen" 
cordova-plugin-statusbar 2.1.3 "StatusBar" 
cordova-plugin-whitelist 1.2.2 "Whitelist" 
ionic-plugin-keyboard 2.2.1 "Keyboard" 

Dann haben wir eine HTML mit diesem Knopf

<button class="button button-full button-positive" ng-click="take_picture()">Take photo</button> 

und die Funktion in die Steuerung haben

$scope.take_picture = function() 
{ 
    screen.lockOrientation('portrait'); 
    var options = { 
     quality: 25, 
     destinationType: Camera.DestinationType.DATA_URL, 
     sourceType: Camera.PictureSourceType.CAMERA, 
     encodingType: Camera.EncodingType.JPEG, 
     saveToPhotoAlbum: false, 
     correctOrientation: true, 
     allowEdit: false, 
     targetHeight: 200, 
     targetwidth: 200 
    }; 

    $cordovaCamera.getPicture(options).then(function(imageURI) { 
     $scope.image_uri = imageURI; 
     $scope.marcar_gps(); 
     $cordovaCamera.cleanup(); 
    }, function(err) { 
     console.log('error ',err); 
     $cordovaCamera.cleanup(); 
     $ionicLoading.hide(); 
    }); 

}; 

Hoffnung jemand helfen kann. Beste!


EDIT

Wenn die Kamera auf xCode Konsole übersprungen ich dieses: Achtung: Der Versuch, auf dem präsentieren ist bereits

Antwort

0

Vermeiden Sie DATA_URL Zieltyp präsentiert und ersetzen sie durch FILE_URI wie es sei verbrauchen so viel Speicher auf den alten Telefonen. Wenn Sie FILE_URI als Zieltyp verwenden, können Sie das cordova-Datei-Plug-in verwenden, um das Bild an den externen/internen Speicher zu übertragen. Anschließend können Sie den Image-Quellcode-Link zur lokalen Geräte-URL aufrufen.


EDIT

Kamera-Plugin und Orientierung Plugin war nicht auf dem neuesten Stand. Also von aktualisieren müssen es Versionen 2.4.0 „Kamera“ und 1.4.2 „Bildschirmausrichtung“ 2.4.1 „Kamera“ und 2.0.1 „Screen Orientation“

+0

aber dies geschieht auf einem iPhone 7, tun Sie denke, dass könnte ein Gedächtnisproblem in diesem Telefon sein? Der Timeout ein Hack ist, den Benutzer zu vermeiden, drücken Sie zu oft die Taste –

+0

Nach dem Foto aufgenommen wurde, dann Rückruf aufgerufen wurde, so dass die das Bild bedeuten vollständig zurückgeführt. Sie müssen das Entladen nicht innerhalb des Zeitlimits umbrechen. Von http://ngcordova.com/docs/plugins/camera/ camereactive wird verwendet, wenn Sie nur FILE_URI verwenden, nicht erforderlich, wenn Sie DATA_URL verwenden. Vielen Dank. – digit

+0

Ich fand, dass auf der XCode-Konsole, wenn die Kamera übersprungen wird, diese Warnung zurückgibt: Versuch, auf zu präsentieren, die bereits präsentiert

Verwandte Themen