我正在使用phonegap,我想从Android设备访问位于www / res的文件,但它正在扔NOT_FOUND_ERR ...我确定它所在的文件和这是我写的代码:
{{1}}
代码非常简单,但我无法看到它的错误!
答案 0 :(得分:2)
本地网址cordova.file.applicationDirectory适用于iOS但不适用于Android。 您必须遍历cordova.file.dataDirectory,直到找到/ res目录作为GUID命名的app目录的子目录。
尝试以下方法:
var dirEntry = function (entry) {
var dirReader = entry.createReader();
dirReader.readEntries(
function (entries) {
$.each(entries, function (n, i) {
if (i.isDirectory === true) {
if (i.nativeURL.indexOf('www/res') > -1) {
//found the target /res directory
var path = i.nativeURL + '/myfile.txt';
window.resolveLocalFileSystemURL(path, app.gotFile, app.fail);
return false; //no need to iterate more
} else {
// Recursive -- call back into this subdirectory
dirEntry(i);
}
}
});
},
function (error) {
console.log("readEntries error: " + error.code);
}
);
};
var dirError = function (error) {
console.log("getDirectory error: " + error.code);
};
window.resolveLocalFileSystemURL(cordova.file.dataDirectory, dirEntry, dirError);
答案 1 :(得分:1)
我可以尝试你给出的代码。如果您将函数名称resolveLocalFileSystemURL
更改为resolveLocalFileSystemURI
,它可以正常工作,至少对我而言。您可以看到PhoneGap documentation
答案 2 :(得分:-1)
您可以尝试使用相对路径。当然,这取决于您在问题中所述的代码所在的位置。我假设此代码位于默认的phonegap index.js文件中,其目录为“www / js / index.js”。 txt文件的相对路径为'../ res / myfile.txt'。
window.resolveLocalFileSystemURL("../res/myfile.txt", app.gotFile, app.fail);