我已将cordova-plugin-camera插件添加到我的离子应用中,以便同时使用它们 - 使用相机拍照,并从照片库中获取图片。
使用相机拍照完美地在我的android galaxy s3设备上工作,但是从gallery获取图像会在成功结果函数中返回NULL。
我尝试过同时使用$ here和this中描述的{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) 也许我想念一些配置吗?我没有想法......
答案 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))