科尔多瓦相机保存到画廊,即使在假

Cordova camera saves to gallery even on false

本文关键字:相机 保存      更新时间:2023-09-26

我的情况真的很糟糕…

我的客户希望在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.CAMERACamera.destinationType = Camera.DestinationType.FILE_URI时适用。

它是真的要去相册,还是只是显示在Android的照片应用程序中?Android默认的照片浏览器会显示所有的照片、截图等。它甚至还会显示随机图像——其他应用程序可能会在文件系统中显示这些图像,但它们不是照片。

因为在cordova,你没有很好的控制操作系统,你可以使用一个工作:你可以把图像放在一个隐藏的目录(从.这样的.appdata开始),这将阻止Android从"画廊"应用程序自动看到图像。我在一个Ionic应用程序有这个问题,并解决了它的方式。