ionic navigator.camera.getPicture不会从PHOTOLIBRARY返回图像

时间:2016-02-06 16:47:53

标签: android image cordova camera ionic-framework

我已将cordova-plugin-camera插件添加到我的离子应用中,以便同时使用它们 - 使用相机拍照,并从照片库中获取图片。

使用相机拍照完美地在我的android galaxy s3设备上工作,但是从gallery获取图像会在成功结果函数中返回NULL。

我尝试过同时使用$ herethis中描述的{cordovaCamera.getPicture}和来自{{3}}示例的navigator.camera.getPicture,两者都返回 null 作为结果参数在成功方法中,我在我的设备上选择图像。

我尝试过使用所有参数,尝试获取destinationType(DATA_URL,FILE_URL,NATIVE_URI)的3个选项中的任何一个,尝试保存/取消保存到图库,编辑/未编辑,编码类型明确的jpeg ,mediaType PICTURE等。 没有人使用PHOTOLIBRARY或SAVEDPHOTOALBUM,但与CAMERA合作

这是我写的代码:

ver 1:

    var options = {
  destinationType: Camera.DestinationType.FILE_URI,
  sourceType: Camera.PictureSourceType.PHOTOLIBRARY,
  correctOrientation: true,
  allowEdit: true
};

$cordovaCamera.getPicture(options)
.then(function (imageURI) {
    if (!imageURI) {
      console.log('getPicture: no image selected');
      return;
    }
    // upload image to server code goes here
  });

ver 2:

    navigator.camera.getPicture(onSuccess, onFail, 
  { 
    destinationType: Camera.DestinationType.FILE_URI,
    sourceType: Camera.PictureSourceType.PHOTOLIBRARY,
    correctOrientation: true,
    allowEdit: true
});

function onSuccess(imageData) {
  console.log(imageData);
  // upload image to server code goes here
}

function onFail(message) {
    alert('Failed because: ' + message);
}

任何人都可以建议可能出现的问题吗? (为什么imageURI / imageData为null) 也许我想念一些配置吗?我没有想法......

2 个答案:

答案 0 :(得分:2)

我在Ionic框架forum中问了同样的问题,并且fajohann回答说,当他安装了旧版本的插件时,它运行正常。我自己尝试过,一个接一个地安装以前的版本,直到我开始工作。 我发现支持android的最新版本(在选择图像时不返回NULL)是v1.2.0

要安装它,您应该运行命令:

  

离子插件添加cordova-plugin-camera@1.2.0

答案 1 :(得分:2)

使用旧版本的插件并不是一个好的解决方案,当某些内容无效时,您必须在http://issues.cordova.io上打开一个问题,提供您可以提供的所有相关信息,以便开发人员了解问题并解决它。

幸运的是,有人报告了问题https://issues.apache.org/jira/browse/CB-10625,并且已修复。

这些更改将在插件的2.1.1版本上提供,但尚未发布。在此期间,您可以从github url

安装插件
r <- raster(matrix(runif(100), ncol=10))