下载的图像不会保存在手机图库phonegap cordova中

时间:2015-08-10 08:03:51

标签: javascript android angularjs cordova phonegap-plugins

尝试将图片从网址保存到手机图库时出现问题。

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);
    }
  );
}

图片从网址正确下载,但会保存到文件目录的根目录,但不会显示在手机图库中。

我该如何解决这个问题?我正在使用cordova。

1 个答案:

答案 0 :(得分:1)

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

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

file:///data/data/<package-name>/files/files

(图书馆后来没有找到该文件夹​​)。

要解决此问题,您必须在config.xml上添加下一行:

<preference name="AndroidPersistentFileLocation" value="Compatibility" /> 

这是因为他们对插件进行了一些更改。更多信息:

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

现在,还有另外一个问题,那就是画廊需要再次读取SDCard以便能够显示图像,因此在下载图像后,您需要找到一种方法再次读取内存,然后您将成为能够看到你的图像。要测试这是否是您的问题,请在下载图像后重启手机,以便再次读取文件系统,然后检查您的图库。

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

希望这有帮助。

干杯!