Javascript PhoneGap/Cordova for android文件插件错误代码1
我正在使用phonegap,我想从android设备访问位于www/res的文件,但它抛出了“未找到”错误。。。我确定文件就在那里,这里是我写的代码:Javascript PhoneGap/Cordova for android文件插件错误代码1,javascript,android,file,cordova,phonegap-plugins,Javascript,Android,File,Cordova,Phonegap Plugins,我正在使用phonegap,我想从android设备访问位于www/res的文件,但它抛出了“未找到”错误。。。我确定文件就在那里,这里是我写的代码: onDeviceReady: function(){ window.resolveLocalFileSystemURL(cordova.file.applicationDirectory + "www/res/myfile.txt", app.gotFile, app.fail); }, gotFile: function(fileEn
onDeviceReady: function(){
window.resolveLocalFileSystemURL(cordova.file.applicationDirectory + "www/res/myfile.txt", app.gotFile, app.fail);
},
gotFile: function(fileEntry){
fileEntry.file(function(file){
var reader = new FileReader();
reader.onloadend = function(e) {
alert(this.result);
}
reader.readAsText(file);
});
},
fail: function(e){
console.log("Error reading");
console.log(e.code);
}
代码非常简单,但我看不出有什么问题 您可以尝试使用相对路径。当然,这取决于您在问题中陈述的代码所在的位置。我假设这段代码在默认的phonegap index.js文件中,该文件的目录是“www/js/index.js”。txt文件的相对路径为“../res/myfile.txt”
window.resolveLocalFileSystemURL("../res/myfile.txt", app.gotFile, app.fail);
我可以试试你给我的密码。如果将函数名
resolveLocalFileSystemURL
更改为resolveLocalFileSystemURI
,至少对我来说,这样做很好。您可以看到本地URL cordova.file.applicationDirectory适用于iOS,但不适用于Android。
您必须遍历cordova.file.dataDirectory,直到找到名为app directory的GUID的子目录/res
请尝试以下操作:
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);
请将路径更改为
file:///android_asset/www/res/myfile.txt
我试过了,但不起作用。它不起作用,我认为它不支持相对路径。好的,我这么做了,得到了一个控制台日志,上面说“resolveLocalFileSystemURI”不推荐使用,应该使用“resolveLocalFileSystemURL”。。。即使使用URI,我仍然会得到未找到的错误。你是如何尝试代码的?我正在android设备上使用phonegap的应用程序进行测试…在控制台登录时,我发现我的nativeURL如下所示:file:///data/data/com.tkj.textread/files/12590FAA-5EDD-4B12-856D-F52A0A1599F2/res/