我有一个简单的基于Cordova的APP,我正在使用相机和文件插件。 我拍照,在画布上画画,用户可以添加一些图像并保存图像。
关于android everythings工作正常,但在iOS上我拍摄的图片是空的,不能在画布上绘制,在XCode控制台上我重温:
快照未渲染的视图会导致空白 快照。确保您的视图至少在之前呈现过一次 屏幕更新后的快照或快照。
我的相机代码是:
navigator.camera.getPicture(
function(imageData) {
bgSrc = 'data:image/png;base64,' + imageData;
bgImg.setAttribute('src', bgSrc);
app.drawEditor(bgImg);
},
function(message) {
alert('Failed because: ' + message);
app.addClass('Home');
app.drawMenu();
}, {
quality: 50,
correctOrientation: true,
destinationType: Camera.DestinationType.DATA_URL,
sourceType: Camera.PictureSourceType.CAMERA,
encodingType: Camera.EncodingType.JPEG,
targetWidth: 720,
saveToPhotoAlbum: false
});
注意:我正在使用最新版本的cordova和github上最新版本的相机插件。
有人知道如何解决这个问题吗?
答案 0 :(得分:2)
希望这可以帮助你:
function captureProfilePhoto(exec)
{
alert("captureProfilePhoto");
//alert("check");
navigator.camera.getPicture(function(imageURI){
exec(imageURI);
}, function(message){
alert("No attachment added");
//alert(labels.get("VPCS_GLOBAL_FAILURE_REASON_"+language)+" : " + message);
exec(-1);
}, {
quality : 100,
destinationType: navigator.camera.FILE_URI,
sourceType : Camera.PictureSourceType.CAMERA,
encodingType: Camera.EncodingType.JPEG,
targetWidth:960,
targetHeight:640,
correctOrientation: true,
allowEdit : true,
popoverOptions: CameraPopoverOptions });
}
//使用ID调用上述方法:
$("#basicInfoCapturePhoto").click(function(){
captureProfilePhoto(function(imageURI){
if(imageURI != -1){
profileImageURI = imageURI;
});
}
});