繁体   English   中英

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

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

我已经在我的离子应用程序中添加了cordova-plugin-camera插件,以便同时使用它的两个附件-使用相机拍照并从照片库中获取图像。

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

我已经尝试过使用此处描述的$ cordovaCamera.getPicture和示例中的navigator.camera.getPicture,在我在设备上选择图像后,两者都返回null作为成功方法中的结果参数。

我尝试使用所有参数,尝试获取destinationType的3个选项(DATA_URL,FILE_URL,NATIVE_URI)中的任何一个,尝试保存/取消保存到图库,编辑/取消编辑,jpeg的编码类型显式,mediaType PICTURE等..他们都没有使用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为null)也许我错过了某个地方的配置? 我没主意..

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

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

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

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

幸运的是,有人报告了这个问题https://issues.apache.org/jira/browse/CB-10625 ,该问题已得到解决。

更改将在插件的2.1.1版本上可用,但尚未发布。 同时,您可以从github网址安装插件

ionic plugin add https://github.com/apache/cordova-plugin-camera

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM