离子相机插件getPicture被忽略了

时间:2017-05-02 14:11:52

标签: ionic-framework plugins cordova-plugins

这吓坏了我。我有一个简单的应用程序,你按下一个按钮,它拍了一张照片,然后用户可以做其他的东西,但问题是有时候getPicture函数被忽略而摄像头从不显示,这里有一些信息和简单的代码:

$ 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

已安装插件

$ 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"

然后我们有一个带有此按钮的HTML

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

将功能导入控制器

$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();
    });

};

希望有人可以提供帮助。 最好!

修改

在xCode控制台上跳过相机时,我得到了这个: 警告:尝试出示已经提交的内容

1 个答案:

答案 0 :(得分:0)

避免使用DATA_URL destinationType并将其替换为FILE_URI,因为它可能会消耗旧手机上的大量内存。当您使用FILE_URI作为destinationType时,您可以使用cordova文件插件将图像传输到外部/内部存储,然后您可以将图像src链接调用到您的本地设备URL。

修改

相机插件和方向插件不是最新的。因此需要将版本2.4.0“Camera”和1.4.2“Screen Orientation”更新为2.4.1“Camera”和2.0.1“Screen Orientation”