我处于非常恶劣的境地......
我的客户想要在Ionic Framework v1中使用Cordova应用程序,并且相机不能将图像保存到图库是必要的。但是,当我将保存到gallery的参数设置为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) {
});
}
答案 0 :(得分:2)
我已使用cordova检查了您的代码。它按预期工作正常。 在其他设备上验证您的应用一次。
我还没有在离子平台上检查过它。
答案 1 :(得分:0)
您可能希望在收到图像数据后尝试运行以下内容:
navigator.camera.cleanup(onSuccess, onFail);
function onSuccess() {
console.log("Camera cleanup success.")
}
function onFail(message) {
alert('Failed because: ' + message);
}
来自the docs:" camera.cleanup()
删除在调用camera.getPicture
后保存在临时存储中的中间图像文件。仅当Camera.sourceType
的值等于Camera.PictureSourceType.CAMERA
且Camera.destinationType
等于Camera.DestinationType.FILE_URI
时才适用。"
以上内容与您的使用案例直接相关。
答案 2 :(得分:0)
它真的要进入照片库,还是只是出现在Android的照片应用中? Android默认照片浏览器将显示所有照片,屏幕截图等。它甚至还会显示随机图像 - 其他应用程序可能在文件系统上,但不是照片。
由于在cordova中,您无法很好地控制操作系统,因此您可以使用解决方法:您可以将图像放在隐藏目录中(以.
.appdata
开头)这将阻止Android自动查看“图库”应用中的图像。我在Ionic App中遇到了这个问题并以这种方式解决了。