ionic navigator.camera.getPicture 不会 return 图片来自 PHOTOLIBRARY

ionic navigator.camera.getPicture won't return image from PHOTOLIBRARY

我已将 cordova-plugin-camera 插件添加到我的 ionic 应用程序中,以便使用它的两个优势 - 使用相机拍照,并从照片库中获取图像。

使用相机拍摄照片在我的 android galaxy s3 设备上完美运行,但从画廊获取图像 returns 在成功结果函数中为 NULL。

我试过使用两个 $cordovaCamera.getPicture 就像描述的 here and navigator.camera.getPicture from this 例子一样,两个 returns null 作为成功方法中的结果参数,在我的设备上 select 图片之后。

我尝试使用所有参数,尝试获取 destinationType 的 3 个选项中的任何一个(DATA_URL、FILE_URL、NATIVE_URI),尝试使用 saving/unsaving 到画廊,edit/unedit,jpeg 的编码类型显式,mediaType PICTURE 等。 none 他们使用 PHOTOLIBRARY 或 SAVEDPHOTOALBUM,但使用 CAMERA 效果很好

这是我写的代码:

版本 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
  });

版本 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 为空) 也许我在某处错过了一些配置?我没主意了..

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

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

ionic plugin add cordova-plugin-camera@1.2.0

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

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

更改将在插件的 2.1.1 版本中可用,但尚未发布。同时,您可以从 github url

安装插件
ionic plugin add https://github.com/apache/cordova-plugin-camera