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
我已将 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