下载的图片不会保存在电话库phonegap cordova

Downloaded images do not get saved in phone gallery phonegap cordova

本文关键字:电话 存在 phonegap cordova 保存 下载      更新时间:2023-09-26

我有一个问题,当试图从URL保存图像到电话库。

savetoImageGallery.js

window.requestFileSystem(window.LocalFileSystem.PERSISTENT, 0, onSuccess, onError);
function onSuccess(fileSystem) {
  var directoryEntry = fileSystem.root; 
  var name = imageName.split('/').pop();
  var imageUrl = encodeURI(decodeURIComponent(AppSettings.baseApiUrl + imageName));
  var fp = fileSystem.root.toURL();
  var filepath = fp + name;
  var ft = new window.FileTransfer();
  var f =  ft.download(imageUrl, filepath,
    function (entry) {
      console.log("download complete: " + entry.toURL());
    },
    function (error) {
      console.log("download error target " + error.target);
    }
  );
}

图片被正确地从url下载,但它被保存到文件目录的根目录,但没有显示在电话库中。

如何解决这个问题?我用的是cordova。

下一个答案只适用于Android和最新版本的文件传输插件:

我的应用程序也有类似的问题,原因是它将图像保存在包文件夹中的子文件夹中:

<>之前文件:///数据/数据/& lt; package-name>/文件/文件之前

(该文件夹后来没有被图库找到)。

要解决这个问题,您必须在config.xml中添加下一行:

之前

这是由于他们对插件所做的一些更改。更多信息:

https://github.com/apache/cordova-plugin-file(在Android Quirks下)

现在,还有另一个问题,那就是图库需要再次读取sd卡才能显示图像,所以在下载图像后,你需要找到一种方法再次读取内存,然后你就可以看到你的图像。为了测试这是否是你的问题,在下载图片后重启你的手机,让它再次读取文件系统,然后检查你的图库。

要解决这个问题,你必须自己编写插件,或者你可以使用一个已经完成的插件(记得检查操作系统兼容性),如https://www.npmjs.com/package/cordova-plugin-refresh-gallery

希望对你有帮助。

干杯!