【发布时间】:2016-02-19 10:30:52
【问题描述】:
我正在使用 Cordova (5.4) 为 Android 和 Iphone 创建应用程序。一切都很好,除了我想使用 Cordova 的插件“FileTransfer”下载图像并且路径有一些问题。
如果我像这样使用 FileTransfer:
uri = encodeURI('http://example.com/myImage.png'),
fileURL = '/sdcard/Download/' + 'myImage.png',
fileTransfer.download(
uri,
fileURL,
function (entry) {
console.log("download complete: " + entry.fullPath);
},
function (error) {
console.log(error);
},
false,
{
headers: {
"authorization": 'Bearer ' + token
}
}
);
这很好用。但我想要一条适用于 Android 和 Iphone 的路径(不是静态路径),如果可以的话,用户可以直接在他们的图库中看到这些图像。
检查我尝试过的插件描述:
fileURL = 'cdvfile://localhost/persistent/myImg.png'
但这会因 FileTrasferError 而失败:
“/data/data/com.aco.plus/files/files/myImg.png:打开失败:ENOTDIR(不是目录)”
检查我也试过的答案:
uri = encodeURI('http://example.com/myImage.png');
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fileSystem) {
fileTransfer.download(
uri,
fileSystem.root.toURL() + '/' + 'myImg.png',
function (entry) {
console.log("download complete: " + entry.fullPath);
},
function (error) {
console.log(error);
},
false,
{
headers: {
"authorization": 'Bearer ' + token
}
}
);
});
我也遇到了同样的错误。
我很迷茫。有谁知道我能做什么?我很确定这一定是比静态路由更好的方法。
【问题讨论】:
-
我知道这是一个很老的问题,但你能解决这个问题吗?因为我在将文件保存到下载文件夹时也遇到了麻烦。
-
如果下载成功,您应该重新扫描您的设备存储,因为 Cordova 不知道文件是否已下载。所以我做了一个插件,它是一个下载后更新画廊的插件。 cordova-plugin-gallery-refresh