我正在尝试读取位于我的Android手机“sdcard”目录中的txt文件。但是“文件阅读器”的“onloadend”事件从未触发过,事实上所有事件似乎都不起作用。我正在使用“phonegap-build”构建应用程序,并通过在“config.xml”文件中添加以下行来导入cordova-plugin-file插件:
<gap:plugin name="cordova-plugin-file" source="npm" />
代码如下(变量和函数是葡萄牙语,对不起):
// Importar dados
$("#ImportarDados").click(function() {
// obter sistema de ficheiros (diretoria principal)
window.resolveLocalFileSystemURL(
cordova.file.externalRootDirectory,
obtiveSistFich,
erro
);
// obter ficheiro
function obtiveSistFich(diretoria) {
console.log("obtive diretoria principal", diretoria);
var ficheiro_entrada = localStorage.getItem("dir_importacao")
diretoria.getFile(ficheiro_entrada, {create:true}, obtiveFicheiro, erro);
}
// ler ficheiro
function obtiveFicheiro(ficheiro) {
console.log("obtive o ficheiro", ficheiro);
ficheiro.file(ficheiroLido(ficheiro), erro);
}
// imprimir ficheiro
function ficheiroLido(ficheiro) {
console.log(leitor);
// TILL HERE SEEMS TO WORKS FINE!!
var leitor = new FileReader();
leitor.onloadend = function(evt) {
// IT NEVER WORKS!!!!
alert("sucesso de leitura!");
alert(evt.target.result);
};
leitor.readAsText(ficheiro);
}
// lidar com possíveis erros (debug)
function erro(erro) {
console.log(erro.code);
}
}
答案 0 :(得分:0)
刚刚发现了问题。 phonegap-build似乎不支持最新版本的cordova-plugin文件。
发布的最新版本(在npm上)为4.1.0,而phonegap-build为3.0.0。
基本上只需要在config.xml中更改行:
<gap:plugin name="cordova-plugin-file" source="npm" />
要:
<gap:plugin name="cordova-plugin-file" version="3.0.0" source="npm" />