我的情况真的很糟糕…
我的客户希望在Ionic Framework v1中使用Cordova应用程序,并且相机不能将图像保存到图库中。但是,当我将保存到图库的参数设置为false时,它仍然保存到图库。
这个问题发生在Android上,当你拍照并取消它。然后将该图片保存到图库,有时甚至保存之后的所有其他图片。
我真的欢迎任何形式的帮助;到目前为止,我发现的所有解决方案都很难理解,因为我对Java的知识为零。
这是我的JS代码
function capturePhoto() {
var maxDimension = 1280;
var options = {
quality: 80,
destinationType: Camera.DestinationType.DATA_URL,
sourceType: Camera.PictureSourceType.CAMERA,
correctOrientation: true,
targetWidth: maxDimension,
targetHeight: maxDimension,
saveToPhotoAlbum: false
};
这是相机选项。
$cordovaCamera.getPicture(options).then(function (imageData) {
var src = "data:image/jpeg;base64," + imageData;
$scope.photoPreviewSrc = src;
}).catch(function (err) {
});
}
我已经用cordova检查了你的代码。它像预期的那样运行良好。验证你的应用程序在其他设备一次。
我还没有在离子平台上检查过
在接收到图像数据后,您可能想尝试运行以下操作:
navigator.camera.cleanup(onSuccess, onFail);
function onSuccess() {
console.log("Camera cleanup success.")
}
function onFail(message) {
alert('Failed because: ' + message);
}
来自文档:" camera.cleanup()
删除调用camera.getPicture
后保存在临时存储中的中间映像文件。
Camera.sourceType
= Camera.PictureSourceType.CAMERA
且Camera.destinationType
= Camera.DestinationType.FILE_URI
时适用。
它是真的要去相册,还是只是显示在Android的照片应用程序中?Android默认的照片浏览器会显示所有的照片、截图等。它甚至还会显示随机图像——其他应用程序可能会在文件系统中显示这些图像,但它们不是照片。
因为在cordova,你没有很好的控制操作系统,你可以使用一个工作:你可以把图像放在一个隐藏的目录(从.
这样的.appdata
开始),这将阻止Android从"画廊"应用程序自动看到图像。我在一个Ionic应用程序有这个问题,并解决了它的方式。