尝试将图片从网址保存到手机图库时出现问题。
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。
答案 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
希望这有帮助。
干杯!