Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ionic framework 离子相机插件getPicture被忽略_Ionic Framework_Plugins_Cordova Plugins - Fatal编程技术网

Ionic framework 离子相机插件getPicture被忽略

Ionic framework 离子相机插件getPicture被忽略,ionic-framework,plugins,cordova-plugins,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:

这让我很害怕。我有一个简单的应用程序,你按下一个按钮,它会拍一张照片,然后用户可以做其他事情,但问题是有时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>
希望有人能帮忙。 最好的


编辑

在xCode控制台上跳过相机时,我得到以下结果:
警告:尝试在已显示的手机上显示

避免使用DATA\u URL destinationType,并将其替换为FILE\u URI,因为它可能会在旧手机上消耗大量内存。当您使用FILE_URI作为destinationType时,可以使用cordova FILE plugin将映像传输到外部/内部存储器,然后可以调用映像src链接到本地设备url


编辑


相机插件和方向插件不是最新的。所以需要将其从2.4.0版“摄像头”和1.4.2版“屏幕方向”更新为2.4.1版“摄像头”和2.0.1版“屏幕方向”

但这在iphone 7上发生,你认为这可能是该手机的内存问题吗?超时是一种黑客行为,它可以避免用户在拍照后多次按下按钮,然后调用回调,这意味着图像将完全返回。您不需要在超时时包装hideloading。如果仅使用文件URI,则使用来自cameracleanup,如果使用数据URL,则不需要。谢谢。我发现在XCode控制台上,当跳过相机时,它会返回以下警告:尝试在已呈现的屏幕上呈现尝试在拍照功能的结束行添加返回true。谢谢,我尝试了,但仍然得到:警告:尝试在已呈现的屏幕上呈现
$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();
    });

};