在cordova 3.5中,我的app的basePath定义为
basePath = 'cdvfile://localhost/persistent/myapp/';
我可以使用fileTransfer插件存储一些下载的图像。在android中最终进入sdcard / myapp /这是好事。 [我有两个必需的文件和文件传输插件]。在iPhone中我不知道位置,但不知何故它们存储正确。
我检查了cordova / phonegap文档以及其他stackoverflow问题,但找不到任何有用的信息。
但是我无法尝试列出同一目录。我试过了:
function success (entries) {
var i;
for (i = 0; i < entries.length; i++) {
console.log(entries[i].name);
}
}
function fail (error) {
console.log("Failed to list directory contents: " + JSON.stringify(error));
}
var parent = 'cdvfile://localhost/persistent/';
var parentName = "pogedapp";
var directoryEntry = new DirectoryEntry(parentName, parent);
var directoryReader = directoryEntry.createReader();
directoryReader.readEntries(success, fail);
错误返回是代码5,根据此页面[https://developer.mozilla.org/en-US/docs/Web/API/FileError]应该是&#39;网址格式错误。确保网址完整且有效。&#39;
有没有办法让我的代码工作?我应该能够在本地下载图像,然后在以后删除它们。因此,目录列表和文件传输都应使用相同的文件夹。我设法获得了Root文件夹的列表,但我认为我不能使用那个,因为最终目录与Android / iOS不同。
答案 0 :(得分:1)
我们遇到了同样的问题,我们通过忽略localhost路径解决了这个问题。你应该这样称呼它。记住图像被读作Base65内容。所以,你必须将它们作为数据URL读取。你应该让它运作。以下是我的代码块,它完美无缺。
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
function gotFS(fileSystem) {
fileSystem.root.getFile("yourdirectory/"+numImg[0], null, gotFileEntry, fail);
}
function gotFileEntry(fileEntry) {
fileEntry.file(gotFile, fail);
}
function gotFile(file){
readDataUrl(file);
}
function readDataUrl(file) {
var reader = new FileReader();
reader.onloadend = function(evt) {
imgArray.push(evt.target.result);
};
reader.readAsDataURL(file);
}